2012-04-30 12 views
6

Ich möchte wissen, wann die App geschlossen ist, weil ich eine Datenbank löschen muss, wenn der Benutzer die App herunterfahren, nur in dem Moment, wenn der Benutzer die App schließen ist der richtige Zeitpunkt, um die SQLite zu löschen Datenbank, wie kann ich das erkennen?erkennen, wenn die Anwendung geschlossen ist

+2

** Lesen Sie die Dokumentation: ** http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle –

+3

Ja, ich weiß das, aber die Frage ist, ich muss wissen, wann Gesamtanwendung ist geschlossen, Nein, wenn eine Aktivität geschlossen wird. – JLouis

+0

Was Sie wollen, ist unmöglich. Ihr Prozess kann jederzeit vom Benutzer oder vom Betriebssystem beendet werden, und Sie werden nicht darüber informiert. – CommonsWare

Antwort

7

Angenommen, Sie tun nicht finish() Ihre Haupttätigkeit, Clearing Ihrer Datenbank innerhalb der onDestroy() Methode dieser Aktivität könnte die nächste sein, was Sie erreichen möchten. Wie in den Kommentaren hingewiesen wurde, beziehen Sie sich auf http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle.

+0

onDestroy() scheint manchmal nicht zu funktionieren, Android überspringt nur die onDestry() -Methode. – San

+2

Die Verwendung von 'onPause()' wird empfohlen, da 'onDestroy()' nicht 100% zuverlässig ist (es hängt von den Systemressourcen ab) –

15

Dies ist eine fehlerhafte Design-Idee, die ein Missverständnis des Systems widerspiegelt - wenn der Prozess insgesamt stirbt, ist er tot, was bedeutet, dass Ihr Code nicht mehr läuft.

Sie können einige Tracking tun und haben die letzte onDestory() 'd Aktivität tun, um die Bereinigung als Höflichkeit, aber nicht davon ausgehen, dass es immer passieren, tatsächlich (die Methode nicht immer genannt ist). Wenn eine veraltete Kopie ein Problem darstellt, bereinigen Sie sie beim nächsten Lauf.

Das heißt, Sie können versuchen, die ndk verwenden, um einen Handler für Prozessbeendigungssignale bereitzustellen, aber ich würde immer noch nicht darauf zählen, dass es in allen Fällen funktioniert. Das beschränkte Potential, irgendeine Klangfunktionalität daraus zu gewinnen, würde wahrscheinlich den Aufwand nicht rechtfertigen, wenn Sie nicht bereits mit den beteiligten Konzepten vertraut sind.

Und nicht für eine Minute Fehler beim Aufräumen für einen Sicherheitsmechanismus, da die Datei dort ist, während Ihre App läuft, und würde bleiben, wenn Ihre App auf unerwartete Weise beendet wurde.

+0

"Wenn eine veraltete Kopie ein Problem ist, bereinigen Sie sie beim nächsten Lauf." - Danke, guter Vorschlag – Nactus

Verwandte Themen