Wie kann ich feststellen, ob die Android-Anwendung zwangsweise geschlossen wurde?

Ich muss feststellen, ob meine Anwendung zwangsweise geschlossen, abgestürzt oder normal beendet wurde. Meine Frage ist: Wie würden Sie so etwas in Android-Umgebung tun. Die Behandlung von Ausnahmen ist einfach, ich muss nur Thread.setDefaultExceptionHandler ersetzen. Der schwierige Teil ist: Wie kann ich eine Kraft beim Herunterfahren von einer "normalen" Kraft unterscheiden (z. B. Zurückdrücken oder Home-Taste + viel Zeit usw.)?

Der Grund ist: Wir können den Inhalt der lokalen Datenbank mit einem Server synchronisieren. Und wir haben gute Gründe, diese Operation nur in Zustand 1 der Hauptaktivität und nicht in Zustand 2 zuzulassen. Wenn der Benutzer jedoch in Zustand 2 der Hauptaktivität einen db-bezogenen semantischen Fehler im Programm findet, dann kann er oder sie dort stecken bleiben.

Wir sind auf eine Unterbrechung eingehender Anrufe und andere Konfigurationsänderungen vorbereitet. Wenn die Anwendung also im Status 2 hängen bleibt, wird der Benutzer nach dem erzwungenen Schließen und erneuten Öffnen der App weiterhin in Stufe 2 anstatt in Stufe 1 verbleiben.

Daher möchten wir dem Benutzer einen Weg lassen, nach dem er festgefahren ist, wieder zu Stufe 1 zurückzukehren und die Datenbank zu synchronisieren, damit der Großteil seiner Arbeit gespeichert werden kann.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage