web-dev-qa-db-fra.com

SecurityException: l'appelant ne fonctionne plus

Je suis confronté au problème ci-dessous dans Android O et supérieur lorsque j'essaie d'exécuter mon JobIntentService , j'ai du mal à reproduire le problème:

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

Laissez votre jobIntentService étendre MyJobIntentService

Ceci gérera plusieurs appels dequeueWork allant à remoteProcess, Même si le remoteProcess lève une exception de sécurité pour la suppression du travail déjà supprimé de la pile.

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;
    }
}

Remarque: Il est important de créer le package "Android.support.v4.app" En tant que classe GenericWorkItem se trouve dans ce package pour obtenir un accès.

2
Bipin