it-swarm.com.ru

SecurityException: звонящий больше не работает

Я столкнулся с проблемой ниже в 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)
6
San

Позвольте вашему 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 находится внутри этого пакета, для получения доступа.

2
Bipin