SecurityException: звонящий больше не работает - PullRequest
0 голосов
/ 14 мая 2018

Я сталкиваюсь с проблемой ниже в Android O и выше, когда пытаюсь запустить мой JobIntentService , мне трудно воспроизвести проблему:

Caused by java.lang.SecurityException: Caller no longer running, last stopped +206ms because: timed out while starting
   at android.os.Parcel.readException(Parcel.java:1942)
   at android.os.Parcel.readException(Parcel.java:1888)
   at android.app.job.IJobCallback$Stub$Proxy.dequeueWork(IJobCallback.java:191)
   at android.app.job.JobParameters.dequeueWork(JobParameters.java:196)
   at android.support.v4.app.JobIntentService$JobServiceEngineImpl.dequeueWork(JobIntentService.java:314)
   at android.support.v4.app.JobIntentService.dequeueWork(JobIntentService.java:639)
   at android.support.v4.app.JobIntentService$CommandProcessor.doInBackground(JobIntentService.java:389)
   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)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
   at java.lang.Thread.run(Thread.java:764)

1 Ответ

0 голосов
/ 08 июня 2018

Позвольте вашему jobIntentService расширить MyJobIntentService

Это будет обрабатывать множественные вызовы dequeueWork, идущие на remoteProcess, даже если remoteProcess выдает исключение безопасности для удаления уже удаленной работы из стека

package android.support.v4.app;

import timber.log.Timber;

public abstract class MyJobIntentService extends JobIntentService {   

    @Override

    GenericWorkItem dequeueWork() { 
        try {
            return super.dequeueWork();
        } catch (SecurityException ignored) {
            Timber.e(ignored);
        }    
        return null;
    }
}

Примечание: важно создать пакет "android.support.v4.app" Поскольку класс GenericWorkItem находится внутри этого пакета, чтобы получить доступ.

...