问题标签 [firebase-job-dispatcher]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 从服务器接收定期更新
我的应用程序需要实时更新信息,即大约每 20 秒更新一次,并且数据的大小可能会有所不同(可能大于 4KB)。
轮询服务器以获取数据甚至以某种方式将数据推送到客户端的理想方法是什么?我猜这些方法之一https://developer.android.com/topic/performance/scheduling.html会合适,但不确定哪一种适合我的需要。还有其他更高效的电池/数据方法吗?
该应用程序只需要在打开并处于前台时接收信息。
提前致谢
android - FirebaseJobDispatcher 在网络更改时运行
我有点不确定FirebaseJobDispatcher
(JobScheduler)应该如何工作。当用户失去互联网连接然后再次连接以使我的应用程序运行并进行同步以在重新连接时检查内容更新时,我想要它做什么。
我知道我们不应该使用连接更改广播侦听器并使用 JobScheduler,但似乎 JobScheduler 更像是一个更智能的 AlarmManager,即使没有连接更改(我不需要)它也会在其中运行。
是这种情况还是我误解了它的工作原理?如果没有,是否只有当用户重新连接互联网时才会触发?
android - JobDispatcher.cancel() 没有调用 onStopJob()
我FirebaseJobDispatcher
在我的项目中使用过。这是示例代码。
为了开始我的工作,我在我的活动中做了简单的事情。
它正在启动我的服务,并且onStartJob()
每当我安排我的工作时都会被调用。
唯一的问题是当我使用时firebaseJobDispatcher.cancel("service");
,它没有调用onStopJob()
。
这是实际行为还是我遗漏了什么?
android - 使用 JobScheduler API 进行位置更新
下面是我使用 FireBaseJobDispatcher 开始工作的演示代码。
以下是演示服务
根据收到的新位置,我正在更新地图中的位置,一旦用户到达目的地位置,我想完成工作,那么一旦用户到达目的地并释放资源,我该如何停止这项工作。
android - Firebase 作业调度员是否需要互联网访问来安排作业?
Firebase 作业调度程序是否需要访问 Internet 才能安排作业?当我关闭 Internet 访问时,计划的工作似乎根本没有做任何事情。当我重新打开它时,预定的作业开始工作。
这是我使用 Firebase Job 调度作业的代码。
android - 如何使用 firebaseJobDispatcher 接收位置的持续更新?
级别
I 是初学者
任务
运行一个 android 服务,该服务在司机每 5 分钟驾驶(跟踪位置)时定期向数据库发送位置更新(纬度、经度)。即使应用程序未处于活动状态,我也想使用位置更新数据库,因此我决定使用 firebase 作业调度程序。
注意
我已经看到了几个关于如何使用 ALARM_MANAGER 或广播接收器等执行此操作的线程。我想知道如何使用作业调度程序执行此操作。我当前的代码有效,但我很确定它不是正确的方法。
问题
1. 我在哪里调用来构建 Googleapi 并调用 Connect() 方法?现在,我的调度程序调用一个类“onStart”,它依次执行连接。
- 除了使用 jobScheduler 之外,还有什么方法可以让我使用“位置接收器”来执行此操作,因为我读取它需要一个时间间隔,并通过覆盖返回更新的位置
onLocationChanged()
。
当前工作代码
Firebase 服务:-
实际跟踪:-
在 Main 中,启动调度:
注意
- 您可能需要添加代码以根据 api 检查权限
- 我将忽略在 Android 清单中注册服务和在构建 gradle 中的依赖项。
android - 如何在给定时间运行作业服务
我想创建类似提醒应用程序的东西,它在给定时间通知用户,我想使用作业调度程序 api 来实现这一点假设我想在上午 9 点和 12 点运行服务,应该在以下代码中添加什么来实现这个。
android - 如何使用 FirebaseJobDispatcher 可靠地替换 CONNECTIVITY_CHANGE
我的应用面向 Android 7,最低 SDK 为 Android 4。
因此,收听CONNECTIVITY_CHANGE
(即使应用程序被杀死)不再起作用。我想做的是
- 即使我的主应用程序被杀死,当互联网连接从“不可用”变为“可用”时,我也想启动一个警报广播接收器。
我尝试使用以下代码来实现
MainActivity.java
然而,
MyJobService.java
但是,上面的代码并不可靠。我如何测试是
- 退出我的应用程序。
- 使用“强制停止”通过设置明确终止我的应用程序。
- 关闭互联网。
- 打开互联网。
- 等待几分钟。
MyJobService
永远不会被执行。
有什么可靠的方法可以使用 FirebaseJobDispatcher 可靠地替换 CONNECTIVITY_CHANGE 吗?
我已经使用了Firebase JobDispatcher - 与以前的 API(JobScheduler 和 GcmTaskService)相比,它是如何工作的?,但我仍然找不到让它可靠工作的方法。
android - Firebase jobdispatcher not triggering within specified window
I am implementing Firebase Jobdispatcher with trigger time specified between 10 to 20 seconds. This is my code to schedule a job:
And the service class:
}
Job dispatcher is running, but the time in logcat is not correct. With every rescheduling of job, the time gap keeps on increasing, and was never in between 10 to 20 seconds.
06-07 11:19:16.429 26174-26174/com.example.jobdispatcher E/start job: started com.firebase.jobdispatcher.JobInvocation@f4250de4 06-07 11:19:18.432 26174-26174/com.example.jobdispatcher E/handler: run 06-07 11:20:16.436 26174-26174/com.example.jobdispatcher E/start job: started com.firebase.jobdispatcher.JobInvocation@f16ceb31 06-07 11:20:18.438 26174-26174/com.example.jobdispatcher E/handler: run 06-07 11:21:58.519 26174-26174/com.example.jobdispatcher E/start job: started com.firebase.jobdispatcher.JobInvocation@f4c635cd 06-07 11:22:00.520 26174-26174/com.example.jobdispatcher E/handler: run 06-07 11:23:40.602 26174-26174/com.example.jobdispatcher E/start job: started com.firebase.jobdispatcher.JobInvocation@f15f8e29 06-07 11:23:42.605 26174-26174/com.example.jobdispatcher E/handler: run 06-07 11:25:52.642 26174-26174/com.example.jobdispatcher E/start job: started com.firebase.jobdispatcher.JobInvocation@f48c1045 06-07 11:25:54.644 26174-26174/com.example.jobdispatcher E/handler: run 06-07 11:28:52.652 26174-26174/com.example.jobdispatcher E/start job: started com.firebase.jobdispatcher.JobInvocation@f3b49821 06-07 11:28:54.655 26174-26174/com.example.jobdispatcher E/handler: run 06-07 11:32:04.688 26174-26174/com.example.jobdispatcher E/start job: started com.firebase.jobdispatcher.JobInvocation@e7f3c1bd 06-07 11:32:06.690 26174-26174/com.example.jobdispatcher E/handler: run
Please check time in logcat. Guide me where am I going wrong in this, or is it supposed to work this way only? Basically I want to implement it for a time gap of 24 hours, but I wonder if this is the working then at one time job will be invoked after double the time specified in the trigger time.
android - 关闭应用程序时,Firebase 作业调度程序未执行
我已经通过 firebase 作业调度程序设置了一个作业,该作业应在 X 小时后执行。当应用程序打开或在后台运行时,它可以正常工作,但在应用程序关闭时无法正常工作。
太多人遇到过这个问题,即使这样的问题仍然在 Github 中公开,但我没有找到解决方案。
这是我的代码:
制作 .setRecurring(true) 会触发它,但只有在您打开应用程序时才会触发它,然后即使应用程序关闭,它也会重复并正常工作。
请帮忙!