JobIntentService onComplete崩溃

时间:2018-08-07 09:11:15

标签: android android-8.0-oreo responsys

我正在获取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进行推送通知。

1 个答案:

答案 0 :(得分:6)

对我来说,当我有两个不同的JobIntentService都使用相同的JOB_ID(enqueueWork()的最后一个参数

因此,该ID在整个应用中似乎必须是唯一的。

编辑:是的,起初我认为它仅对于您要使用它的类是唯一的,但这不是事实! 每个UID,它对于您的整个应用来说必须是唯一的。因此,如果您使用的库使用相同的ID,则需要将其更改为其他名称。不确定您应该如何知道已经使用了哪个ID。

另一件事是,同一类不能使用不同的ID。同一班级的ID也必须相同,否则将忽略具有不同JOB ID的第二次呼叫