Что может уничтожить активность системой, кроме приложения с более высокой потребностью в памяти? - PullRequest
0 голосов
/ 17 января 2020
Жизненный цикл Активности

Android снова. Я посмотрел на официальную диаграмму жизненного цикла и был озадачен, потому что это наводит на мысль, что могут быть и другие причины, по которым ОС Android будет разрушать Activity, кроме случая, когда другому приложению с более высоким prio требуется память?

enter image description here

В разделе onDestroy () Я вижу, что есть только 2 причины:

  1. заканчивается (после вызова finish())
  2. разрушается ОС Android из-за изменения конфигурации

Однако на диаграмме показано, что Существуют ли другие причины, по которым система может захотеть уничтожить это действие?

1 Ответ

0 голосов
/ 04 февраля 2020

В общем случае, если Android захочет вернуть ресурсы, это приведет к завершению процесса ОС, на котором размещено приложение в фоновом режиме.

Однако мы видели ситуации, когда вместо полного уничтожения всего Процесс ОС, Android будет выборочно уничтожать действия, чтобы вернуть ресурсы. Это, кажется, зависит от производителя и, вероятно, было реализовано определенными c производителями (по любой причине). В этом случае Android вызовет onDestroy() для действий, для которых был вызван onStop(), хотя Activity не вызвал finish().

Мы не знаем точно, почему это происходит но мы определенно видели это. Вполне возможно, что это происходит, когда пользователь удаляет приложение из списка недавних задач (проводя пальцем) и приложение запускает Service в процессе ОС. В этом случае Android может просто уничтожить все действия, но оставить процесс ОС запущенным, чтобы не перезапускать Service.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...