Как определить, было ли приложение Android закрыто принудительно?

Мне нужно определить, было ли мое приложение принудительно закрыто, аварийно завершено или завершено. Мой вопрос: как бы вы сделали это в среде Android. Обработка исключений проста, мне нужно только заменить Thread.setDefaultExceptionHandler. Сложная часть: как я могу отличить принудительное закрытие, отключенное от «нормального» (например, нажатие кнопки «назад» или «домой» + много времени и т. Д.)?

Причина в том, что мы можем синхронизировать содержимое локальной базы данных с сервером. И у нас есть веские причины разрешить эту операцию только в состоянии 1 основного действия, а не в состоянии 2. Однако, если пользователь обнаруживает в программе некоторую семантическую ошибку, связанную с БД, в состоянии 2 основного действия, тогда он или она может застрять там.

Мы подготовлены к прерыванию входящего вызова и другим изменениям конфигурации, поэтому, если приложение застрянет в состоянии 2, то принудительное закрытие приложения и его повторное открытие все равно оставит пользователя на этапе 2, а не на этапе 1.

Таким образом, мы хотим, чтобы после принудительного замораживания пользователь мог вернуться к этапу 1 и иметь возможность синхронизировать базу данных, чтобы можно было сохранить большую часть его или ее работы.

Ответы на вопрос(2)

Ваш ответ на вопрос