Jak wywołać metodę, gdy aplikacja na Androida jest zamknięta lub traci ostrość?

Ponieważ aplikacja, którą buduję, będzie obsługiwać raczej poufne dane, chcę synchronizować db SQLite z serwerem za każdym razem, gdy użytkownik się loguje, i usuwać emty db za każdym razem, gdy aplikacja traci fokus (ponieważ użytkownik przechodzi na ekran główny lub inna aplikacja).

Widzeniecykl życia aktywności, moim pomysłem było zrobienie tego przez opróżnienie bazy danych w onDestroy każdego działania. Aby przetestować opisany cykl życia, po prostu Zastąp wszystkie metody cyklu życia (onCreate, onStart, onResume, onPause, onStop i onDestroy), uwzględniłem w nich kilka komunikatów dziennika i uruchomiłem moją aplikację.

Komunikaty dziennika są zawarte w moich ustawieniach. Kiedy wchodzę do aplikacji i przechodzę do ustawień, uruchamia się na Create, onStart i onResume (zgodnie z oczekiwaniami). Po kliknięciu ustawienia i przejściu do następnego ekranu uruchamia on onPause i onStop (nadal zgodnie z oczekiwaniami). Aby wrócić do ekranu ustawień, klikam przycisk Wstecz i ponownie uruchamia onStart i OnResume (nadal zgodnie z oczekiwaniami), kiedy teraz klikam ponownie przycisk Wstecz, aby wrócić do ekranu początkowego, to (ku mojemu zaskoczeniu) uruchamia się onPause, onStop AND onDestroy.

Więc moje pytania;

Dlaczego niszczy działanie, gdy aplikacja nie jest zakończona?Co ważniejsze: w jaki sposób mogę uruchomić metodę CleanUp, gdy aplikacja zamyka się lub traci ostrość?

questionAnswers(4)

yourAnswerToTheQuestion