Насколько я понимаю, в Android нет понятия, что приложение будет работать в фоновом режиме в целом.Ваше приложение рассматривается с точки зрения федерации видов деятельности / услуг /..., работающих вместе.И потенциально вы можете настроить его так, чтобы он мог запускаться с разных действий, в разных процессах, в разных задачах, поэтому невозможно (почти?) Определить, когда ваше приложение переходит в фоновый режим.
Кроме этого, на ваш вопрос:
MyXxxActivity.onPause - это последний надежный шанс запустить сохранение данных, которое должно сохраняться при различных «запусках» вашего приложения.Это не переходное состояние приложения, вместо этого это материал, который отправляется в хранилище БД / файловой системы и который вы хотите получить снова при следующем запуске.
Я предполагаю, что упомянутое вами состояние приложения попадает в эту категорию.
Таким образом, ваше сохранение должно быть вызвано каждой операцией onPause.Если какое-либо состояние совместно используется разными действиями (например, в приложении), оно должно быть собрано с каждой onPause.Или его сохранение должно запускаться также с каждой onPause.
Если операция сохранения занимает много времени, не следует запускать ее в основном потоке (пользовательском интерфейсе).Вместо этого вы должны передать его в другой поток.Опять же, если это важное состояние, которое вы делаете хотите сохранить, то лучше передать эту работу в службу (в отличие от AsyncTask, например).