2016-07-09 7 views
9

Ich möchte eine Notification anzeigen, wenn meine App aus der Liste der zuletzt verwendeten Apps entfernt wird.So erhalten Sie eine Benachrichtigung, wenn die Anwendung in Android geschlossen wird

Ich habe versucht, Code dafür in onStop() und onDestroy(), aber keiner funktioniert. onStop() wird aufgerufen, sobald die App geschlossen ist (obwohl sie immer noch in der App-Liste ist).

Kann jemand sagen, welche Methode aufgerufen wird, wenn die App aus der aktuellen App-Liste entfernt wird oder auf welche Art und Weise diese Anforderung erfüllt werden kann?

Antwort

11

Wenn Sie eine App aus den Recents streichen, wird ihre Aufgabe sofort beendet. Es werden keine Lebenszyklusmethoden aufgerufen.

Um benachrichtigt zu werden, wenn das passiert, könnten Sie eine sticky Service starten und ihre onTaskRemoved() Methode überschreiben.

Vom documentation von onTaskRemoved():

Dies wird aufgerufen, wenn der Dienst derzeit ausgeführt wird und der Benutzer hat eine Aufgabe entfernt, die von der Service-Anwendung kommt.

Zum Beispiel:

public class StickyService extends Service { 
    @Override 
    public int onStartCommand(Intent intent, int flags, int startId) { 
     return START_STICKY; 
    } 

    @Nullable 
    @Override 
    public IBinder onBind(Intent intent) { 
     return null; 
    } 

    @Override 
    public void onTaskRemoved(Intent rootIntent) { 
     Log.d(getClass().getName(), "App just got removed from Recents!"); 
    } 
} 

es in Registrieren AndroidManifest.xml:

<service android:name=".yourpackagename.StickyService" /> 

Und es starten (zB in onCreate()):

Intent stickyService = new Intent(this, StickyService.class); 
startService(stickyService); 
+0

Es funktioniert perfekt ! –

Verwandte Themen