问题标签 [jobintentservice]

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.

0 投票
12 回答
20361 浏览

android - 未调用自定义 JobIntentService onHandleWork

我最近正在更新一个我正在开发的应用程序,以使用 aJobIntentService而不是常规来处理来自推送的通知,IntentService因为它似乎是在棒棒糖之前的设备上处理此问题以及发布的正确方法。我正在排队工作:

这是清单声明:

onHandleWork我从来没有在我的 logcat中看到任何回调或任何错误日志。有没有人成功整合这个可以帮助?

更新 1

我在 API 级别 21 设备上对此进行了测试,它可以工作..但它似乎没有在我的 Android Oreo Pixel XL 设备上被调用..关于为什么的任何线索?

更新 2

此外,我似乎看到 IntentServiceonCreate被调用,但没有其他生命周期方法(包括onHandleWork)。有没有人遇到过这种情况?

0 投票
1 回答
2760 浏览

android - 从 IntentService 迁移到 Android O 的 JobIntentService

以前我使用 IntentService 定期向服务器发送数据。但是,由于 Android O 限制了后台任务和进程,我正在转向 JobIntentService。

我的活动代码来安排闹钟

我的服务如下

此代码的接收者是

但是,当应用程序在后台时,这不适用于 Android O,如果我context.startForegroundService(myIntent);用来启动我的服务,它会抛出异常Context.startForegroundService() did not then call Service.startForeground()

0 投票
1 回答
257 浏览

android - 带有 JobIntentService 的 BadParcelableException

在 Android O 上使用 JobIntentService,在尝试读取可打包的额外内容时获取 BadParcelable Android 运行时异常。在 < O 上没有观察到 JobIntentService 立即启动服务的问题

为解组(setExtrasClassLoader)设置的类加载器是默认的,它使用无法找到类的 BootClassLoader

0 投票
0 回答
188 浏览

android - 如何读取 JobIntentService 中的传感器?

我正在编写一个从 API 级别 19 开始针对 8 Oreo 的 Android 应用程序。我想查询Sensor.TYPE_STEP_COUNTER. 由于据我了解无法直接读取当前值,因此我必须创建一个 SensorEventListener 等待onSensorChanged(SensorEvent event). 我该如何正确地做到这一点JobIntentService?由于onHandleWork(@NonNull Intent intent)是为了完成一项工作然后完成,我目前的解决方案是阻塞线程:

并进一步在我的SensorEventListener

有人对此有更好和更节省的解决方案吗?

0 投票
1 回答
586 浏览

firebase - 从 JobIntentService 使用 Firestore:无法获得 Firestore 客户端脱机持久性的独占锁定

每当我在设置警报时退出应用程序并且在应用程序“死亡”时警报响起时,我在尝试更新 Firestore 中的字段时遇到异常。

该代码在应用程序在前台运行时有效,所以我真的不知道发生了什么。无论哪种方式,这是从 JobIntentService 调用的 2 个函数的代码,而 JobIntentService 又从 BroadcastReceiver 创建:

完整的错误如下:

未能获得 Firestore 客户端离线持久性的独占锁定。

这通常意味着您在应用中的多个进程中使用 Firestore。请记住,多进程 Android 应用程序Application会在所有进程中执行您的类中的代码,因此您可能需要避免在您的Application类中初始化 Firestore。如果您有意从多个进程中使用 Firestore,则只能setPersistenceEnabled(true)在其中一个进程中启用离线持久性(即 call )。

我将不胜感激。谢谢!

0 投票
2 回答
2256 浏览

android - Android JobIntentService - onStartCommand 与 onHandleWork

我目前正在从服务类扩展我的定制服务实现。作为 Android-O 迁移的一部分,我想使用JobIntentService

目前我所有的逻辑都在服务的onStartCommand方法中。

但是,根据 JobIntentService 我应该对我的逻辑部分使用onHandleWork方法。

JobIntentService的官方文档onStartCommand 进程在作为 pre-O 服务运行时启动命令,将它们排入队列以便稍后在 onHandleWork(Intent) 中调度。

所以,我的问题是我是否需要同时保留 onStartCommand 和 onHandleWork 方法以及是否需要在这两种方法中编写相同的逻辑?

或者

简单的 onHandleWork 会起作用吗?

请说清楚。

0 投票
1 回答
65 浏览

android - 我们如何通过 FirebaseJobDispatcher 使用 setMinimumLetancy?

我正在使用FirebaseJobDispatcher发布数据。

我注意到我的发布服务会在一段时间后运行。当我研究它时,我知道有一个 JobInfo 具有设置setMinimumLetancy(0)以尽快运行服务的属性。

但是我需要知道JobJobInfo之间的区别以及如何在Job中使用 setMinimumLetancy ?

0 投票
1 回答
1307 浏览

android - 使用 JobIntentService 在后台更新 Android Oreo 位置

我曾经有AlarmManager + WakefulBroadcastReceiver + Service来做一些后台代码并获取位置更新。

由于 Oreo,这已被弃用,所以现在我使用AlarmManager + BroadcastReceiver + JobIntentService

这是清单中 JobIntentService 的代码:

还有我需要位置更新的 MyJobIntentService 类:

该应用程序可以工作(至少在模拟器上),但我担心我做错了什么,因为在 onCreate() 之后,它被称为 onHandleWork(),然后在onDestroy()之后。

几秒钟后,我开始在onLocationChanged中获取位置更新,但我担心出了点问题,因为之前已经调用过 onDestroy()。这是这样做的正确方法吗?

这是我从 BroadcastReceiver 创建 JobIntentService 的方式:

0 投票
0 回答
713 浏览

android - 如何实现 STICKY JobIntentService?

我有一个需要在后台运行的框架,即使应用程序从“最近”视图中关闭也是如此。我最初将其实现为在 onStartCommand 方法中返回 START_STICKY 的服务。

我对在 JobIntentService 的 onStartCommand 中返回 START_STICKY 表示怀疑,因为它似乎正在为排队工作做重要的工作

对此有什么建议吗?

0 投票
0 回答
72 浏览

android - 如何在 JobIntentService 中使用 OkHttp 管理 WebSocket 的单个对象?

由于 Android Oreo 问题,我不得不更换服务,我打算使用 JobIntentService,但现在 JobIntentService 正在 JobIntentService 中创建 WebSocket 的多个连接,我该如何防止这种情况发生?