2014-02-10 4 views
8

Я знаю, что деятельность onDestroy(...) не может быть вызвана. В соответствии с документами,Является ли onDestroy() гарантированно вызванным для фрагментов?

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

Это относится также к фрагментам? В документах ничего не говорится, а просто хочу убедиться.

ответ

7

Я считаю, что Fragment's onDestroy() не может быть вызван как Activity.

В данный вид деятельности performDestroy():

final void performDestroy() { 
    mDestroyed = true; 
    mWindow.destroy(); 
    mFragments.dispatchDestroy(); 
    onDestroy(); 
    if (mLoaderManager != null) { 
     mLoaderManager.doDestroy(); 
    } 
} 

где mFragments.dispatchDestroy() наконец называть фрагменты onDestroy(), если вы DIGG в источник. Итак, если не вызвано onDestroy() Activity, фрагмент onDestroy() не будет вызываться.

И есть некоторые другие ссылки:

fragment lifecycle: when "ondestroy" and "ondestroyview" are not called?

Android fragments lifecycle onStop, onDestroyView, onDestroy and onDetach

Смежные вопросы