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

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

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

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


person s011208    schedule 05.08.2013    source источник


Ответы (3)


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

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

См. здесь

person AnniJais    schedule 05.08.2013

С сайта 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.

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

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

person Srikant Sahay    schedule 05.08.2013

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

person imthegiga    schedule 05.08.2013