Будет ли активность выполняться на Дестрой, когда система ее убьет?

Мне интересно, будет ли активность запускать метод "onDestroy", когда убит системой?

например, когда состояние "активность A" находится в состоянии onStop (пользователь может непосредственно нажать кнопку "Домой"), в то же время система обнаруживает, что памяти недостаточно, поэтому системе необходимо завершить некоторые фоновые процессы, чтобы сохранить активность на переднем плане. Дайте системе убить активность А.

Будет ли операция А запускать метод "onDestroy" в этой ситуации?

3 ответа

Решение

Это будет чисто зависеть от состояния системы в то время. Документы четко говорит о onDestroy() тот:

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

Смотрите здесь

С сайта developer.android.com:

When your activity receives a call to the onStop() method, it's no longer visible and should release almost all resources that aren't needed while the user is not using it. Once your activity is stopped, the system might destroy the instance if it needs to recover system memory. In extreme cases, the system might simply kill your app process without calling the activity's final onDestroy() callback, so it's important you use onStop() to release resources that might leak memory.

Таким образом, андроид обычно вызывает onDestroy() вашей активности, прежде чем она будет убита, но это не гарантировано.

Ссылка: http://developer.android.com/training/basics/activity-lifecycle/stopping.html

Зависит от того, что, когда система убивает приложение, оно связывает PID, убитый им напрямую. Поскольку Android - это не что иное, как Linux, он отправляет SIG9 (9- значный сигнал "kill") / kill (PID приложения), чтобы уничтожить приложение без вызова методов обратного вызова.

Другие вопросы по тегам