Фрагмент жизненного цикла: когда "ondestroy" и "ondestroyview" не называются?
Представьте себе этот сценарий: у меня есть Fragment
в Pager
. Я пытаюсь переключиться на другие приложения, так что Activity
, владеющий моим пейджером (и моим фрагментом), будет в конечном итоге остановлен и временно уничтожен.
Итак, когда я вернусь в свою активность, вызываются обратные вызовы Fragment
onCreate
, oncreateview
и т.д. Но ни один из обратных вызовов Fragment onDestroy
не был вызван раньше! Кажется, что после "onStop" фрагмент уничтожается сразу. Это нормальное поведение? Может быть, потому, что Activity
уничтожается без вызова его onDestroy
?
Ответы
Ответ 1
Взгляните на этот вопрос: Зачем внедрять onDestroy(), если он не может быть вызван?
В принципе, onDestroy() гарантируется только при вызове finish(). В противном случае onDestroy() не может быть вызван до тех пор, пока система не сочтет это необходимым. Возможно, вам захочется взглянуть на то, что ваша "закрывающая" логика включена в onPause() или onStop().