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

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

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

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

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

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

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