Android: сохранение состояния приложения при переходе в «фоновый режим»

У меня есть сложное приложение для Android с приличным количеством состояний приложения, которое необходимо сохранить (в определенном формате). Запись данных не является мгновенной операцией, поэтому было бы идеально минимизировать их ненужное сохранение.

Из-за накладных расходов на сохранение нецелесообразно сохранять состояние каждый раз, когда оно изменяется. В идеале сохраняющееся состояние должно запускаться, когда приложение находится в «фоновом режиме», когда пользователь нажимает кнопку «домой» или нажимает кнопку «назад» в корневом действии приложения (или при входящем вызове и т. Д.). Это минимизирует накладные расходы на сохранение, сохраняя при этом согласованность состояния с точки зрения пользователя. Вопрос в том, как определить, что приложение находится в «фоновом режиме»?

Вызовы жизненного цикла Activity (onStart, onResume, onPause и другие) не помогают, поскольку в приложении есть много разных действий, любое из которых может быть активен, когда пользователь нажимает «домой». Более того, вызовы вызываются, когда Activity нажимаются, выталкиваются (и убиваются снизу) в стеке Activity, и поэтому они не отражают, уходит ли приложение или нет.

Итак, как приложение определяет, когда оно уходит? на задний план?

5
задан acoward 22 January 2011 в 00:47
поделиться