2016-05-10 2 views
0

Je suis essayer de résoudre ce problème en créant ce code qui est montré ci-dessous. Mais je ne reçois pas de résultat. quelqu'un peut-il aider à répondre à cette question? -In Déclenchement Geofence La notification de transition n'obtient pas l'application lorsqu'elle est supprimée. -La notification de sortie d'entrée fonctionne correctement lorsque l'application est en arrière-plan, mais après la fermeture, la notification d'application ne fonctionne pas correctement.Comment démarrer le service d'intention lorsque l'application est supprimée ou détruite?

public void onDestroy() 
{ 
    super.onDestroy(); 
    if(GpsService.mTimer != null) 
    { 
     startService(new Intent(context, GpsService.class)); 
    } 
    Log.e(TAG, "onDestroy"); 
} 
+0

Vous ne savez pas comment cela fonctionnerait depuis la destruction du contexte. essayez d'utiliser 'getApplicationContext()' à la place –

+0

Essayez celui-ci http://stackoverflow.com/questions/35973536/android-not-able-to-add-geofence-from-service/35979567#35979567, ça marche bien pour moi –

+0

"tout en tuant l'application" que voulez-vous dire par là? –

Répondre

0
public void onDestroy() 
{ 
    super.onDestroy(); 
    if(GpsService.mTimer != null) 
    { 
     startService(new Intent(context, GpsService.class)); 
    } 
    Log.e(TAG, "onDestroy"); 
} 

Cela va d'abord détruire votre activité et sera vérifié votre état. Ce qui est chose inutile .Vous pouvez essayer

public void onDestroy() 
     { 
      if(GpsService.mTimer != null) 
      { 
       startService(new Intent(context, GpsService.class)); 
      } 
      Log.e(TAG, "onDestroy"); 
       super.onDestroy(); 

     } 

`

1

De onStartCommand de votre service(), le retour START_STICKY. Dans ce cas (idéalement) le service redémarrera même lorsque l'application est "tuée". (Si START_STICKY fonctionne, il n'est pas nécessaire de démarrer le service à partir de onDestroy.Android s'en chargera).

Toutefois, dans le téléphone de certains fabricants, si vous effacez l'application de la liste des tâches récentes, il "Force Kills" l'application. Dans ce cas, le service ne redémarrera pas et vous ne pouvez pas faire grand-chose.