Я заметил, что раздел "Активность разработчиков Android" обновлен с момента запуска моего приложения, но я все еще не понимаю, что такое простой жизненный цикл активности.
Насколько я могу разобраться:
onCreate, onResume и onPause являются важными.
Активность может быть удалена в любое время после onPause, поэтому я должен сохранить все состояние приложения в файле onPause и не полагаться на onStop или onDestroy. Кроме того, onSaveInstanceState не вызывается перед каждым onPause, поэтому его не стоит использовать.
Вместо того, чтобы пытаться написать множество кода для обработки всех сценариев, почему бы не уничтожить Activity в конце его onPause?
Тогда жизненный цикл будет onCreate и onResume, прежде чем он станет активным, а затем onPause, когда он станет неактивным. Другие методы не нужны.
Я бы использовал onCreate для вызова setContentView и настройки прослушивателей, но все остальное было бы включено в onResume, включая загрузку восстановленного состояния из файла? Как указано ранее, onPause сохранит состояние в файле и уничтожит действие.
Насколько я вижу, единственным недостатком этого может быть то, что когда всплывающее окно отображается на экране, действие удаляется и его нужно воссоздавать, когда всплывающее окно закрывается, что означает, что активность не будет видна за popup (хотя я не тестировал это)
Для перезапуска активности может потребоваться немного больше времени, но поскольку система могла бы удалить операцию в любом случае без какого-либо уведомления, вы все равно должны сохранить все состояние.
Любые мысли?
Обновление: Я полагаю, что я думал о том, где активность "главной страницы" вызывает игру. Активность на главной странице будет вызывать игру, когда игрок нажимает кнопку "Play"
Игровая активность создала бы свои представления и слушателей и т.д. в onCreate, а в onResume загрузила файл, содержащий состояние игры, или запустила новую игру, если файл не существовал.
onPause игры, он записывает состояние игры в файл, то, что бы ни случилось с игровой деятельностью (ничего, или остановлено/уничтожено или что-то еще), метод onResume всегда будет загружать все данные обратно из файл.
Это то, о чем я думал, если это имеет смысл?
Update2: Я разработал простое решение, которое я документировал в ответе ниже, если кому-то интересно!
Он не поддерживает состояния жизненного цикла Android "приостановил" и "остановился". Как только он больше не отображается, он убивает себя и его необходимо перезапустить вручную, но он продолжается с того места, где вы остановились!