我收到以下 Android 8 的崩溃报告,但我找不到原因或解决此问题:
java.lang.IllegalArgumentException: Given work is not active: JobWorkItem{id=1 intent=Intent { act=com.google.android.c2dm.intent.RECEIVE flg=0x1000010 pkg=com.xxx.android cmp=com.xxx.android/com.pushio.manager.PushIOGCMIntentService (has extras) } dcount=1}
at android.app.job.JobParameters.completeWork(JobParameters.java:221)
at android.support.v4.app.JobIntentService$JobServiceEngineImpl$WrapperWorkItem.complete(JobIntentService.java:267)
at android.support.v4.app.JobIntentService$CommandProcessor.doInBackground(JobIntentService.java:393)
at android.support.v4.app.JobIntentService$CommandProcessor.doInBackground(JobIntentService.java:382)
at android.os.AsyncTask$2.call(AsyncTask.java:333)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
我正在使用 PushIO lib 来推送通知。
对我来说,这发生在我有两个不同的JobIntentService
两者都使用相同的 JOB_ID(最后一个参数enqueueWork()
所以看来这个 ID 在整个应用程序中必须是唯一的。
编辑:是的,起初我认为它对于您使用它的类来说必须是唯一的,但事实并非如此!
它对于您来说必须是独一无二的whole应用程序,每个 UID。因此,如果您使用的库使用相同的 ID,您需要将其更改为其他内容。不知道您如何知道哪些 ID 已被占用。
另一件事是,同一类不能使用不同的 ID。对于同一个类,它也必须是相同的 ID,否则使用不同 JOB ID 的第二次调用将被忽略
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)