Простейший жизненный цикл действий Android

Я заметил, что раздел «Действия разработчиков Android» был обновлен с тех пор, как я запустил свое приложение, но мне все еще неясно, каков самый простой жизненный цикл действий.

Насколько я могу разобрать:

onCreate, onResume и onPause являются важными.

Действие может быть удалено в любое время после onPause, поэтому я должен сохранять все состояние своего приложения в файл onPause, а не полагаться на onStop или onDestroy. Кроме того, onSaveInstanceState не вызывается перед каждым onPause, поэтому его не стоит использовать.

Вместо того, чтобы пытаться писать много кода для обработки всех сценариев, почему бы не уничтожить Activity в конце его onPause?

Жизненный цикл тогда будет onCreate и onResume, прежде чем он станет активным, затем onPause, когда он станет неактивным. Другие методы не понадобятся.

Я бы использовал onCreate для вызова setContentView и настройки слушателей просмотра, Как указывалось ранее, onPause сохранит состояние в файл и уничтожит действие.

Насколько я могу видеть, единственным недостатком этого может быть то, что когда на экране появляется всплывающее окно, действие удаляется и должно быть воссоздается, когда всплывающее окно закрывается, что означает, что действие не будет видно за всплывающим окном (хотя я не тестировал это)

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

Есть какие-нибудь мысли?

Обновление: Полагаю, я имел в виду то, что «первая страница» называется игровым действием. Активность на главной странице будет вызывать игровую активность, когда игрок нажимает «Играть»

. Игровая активность настраивает свои представления, слушателей и т. Д. В onCreate, а в onResume загружает файл, содержащий состояние игры, или запускает новый game, если файл не существовал.

onPause игры, он записывает состояние игры в файл, а затем, что бы ни случилось с игровой активностью (ничего, либо остановка / уничтожение, или что-то еще), метод onResume всегда будет загружать все данные обратно из файла.

Это вроде того, о чем я думал, имеет ли это какой-то смысл?

Update2: Я разработал простое решение, которое задокументировал в ответе ниже, если кому-то интересно!

Оно не поддерживает состояния «Приостановлено» и «Остановлено» в жизненном цикле действий Android. Как только он больше не отображается, он самоуничтожается, и его необходимо перезапустить вручную, но он продолжает работать с того места, где вы остановились!

18
задан Swati Garg 21 September 2017 в 12:48
поделиться