Как вызвать метод, когда приложение Android закрыто или теряет фокус?
Поскольку приложение, которое я создаю, будет обрабатывать довольно конфиденциальные данные, я хочу синхронизировать базу данных SQLite с сервером каждый раз, когда пользователь входит в систему, и удалять emty базу данных каждый раз, когда приложение теряет фокус (поскольку пользователь переходит на домашний экран или другое приложение).
ПроводыЖизненный цикл деятельностиМоя идея заключалась в том, чтобы сделать это, опустошив базу данных в onDestroy каждого действия. Чтобы протестировать описанный жизненный цикл, я просто переопределил все методы жизненного цикла (onCreate, onStart, onResume, onPause, onStop и onDestroy), включил в них некоторые сообщения журнала и запустил свое приложение.
Сообщения журнала включены в мои настройки. Когда я захожу в приложение и перехожу в настройки, оно запускается при создании, запуске и восстановлении (как и ожидалось). Когда я затем щелкаю настройку и перехожу к следующему экрану, он запускается при паузе и останове (все так же, как ожидалось). Чтобы вернуться к экрану настроек, я нажимаю кнопку «Назад», и он снова запускает onStart и onResume (по-прежнему, как и ожидалось), а когда я снова нажимаю кнопку «Назад», чтобы вернуться к начальному экрану, он (к моему удивлению) запускается при паузе, onStop AND onDestroy.
Итак, мои вопросы;
Почему это разрушает активность, когда приложение не завершено?И что еще более важно: как я могу запустить мой метод CleanUp, когда приложение закрывается или теряет фокус?