Ich habe eine IntentSerivce
, die manchmal im Hintergrund läuft und es kann in bestimmten Fällen ein ziemlich langer Prozess sein. Ich gebe eine Option für den Benutzer, die Anwendung zu beenden, die im Grunde nur stoppt und abfragt und ignoriert alle GCM
Push-Benachrichtigungen. Aber wenn eine Push-Benachrichtigung eintraf und die IntentService
eine Weile dauert, um das zu tun, was sie tun muss (holt Informationen von einem Server und sendet eine Benachrichtigung an den Benutzer, falls nötig, wie eine neue Nachricht angekommen oder so).Stoppen eines IntentService von einer Aktivität
Hier ist das Problem, wenn der Benutzer wählt, die App zu "beenden", während die intentservice
noch läuft sie immer noch die Benachrichtigung, die ich nicht will. Ich weiß, dass es die stopSelf()
Methode für den Dienst gibt, aber ich muss es in einer Aktivität stoppen, wenn ich den Benutzer "Quit" die Anwendung über eine Menüschaltfläche kenne. Senden einer anderen intent
an den Dienst funktioniert nicht, da die Absichten in der Warteschlange eingereiht und Aufruf von context.stopService(intent);
in meiner Aktivität funktioniert auch nicht so, wie sonst kann ich es stoppen?
Mögliche Duplikat [Erzwingen eines IntentService sofort zu stoppen] (http://stackoverflow.com/questions/11258083/forcing- an-intentionservice-to-stop-sofort) –