我有两个基于活动的片段,一个包含列表片段的活动,当一个项目被点击时,它将触发另一个包含另一个片段的活动(让我们称之为DisplayFragment)以显示必要的数据。单击List Fragment上的项目后,系统会在创建/显示其他片段之前调用这些方法。
列表片段:
OnPause() -> onStop()
根据片段的生命周期图表是正确的,但是当我按下后退按钮时,系统调用以下方法:
(DisplayFragment) onPause() -> (ListFragment) onDestroyView() -> (ListFragment) onDestroy()
-> (ListFragment) onCreate() -> (ListFragment) onCreateView() -> (ListFragment) onResume()
->(DisplayFragment) onStop() -> (ListFragment) onDestroyView() -> (ListFragment) onDestroy()
我很困惑,为什么系统会调用此订单上的方法。为什么在执行另一个onPause之后调用(ListFragment) onDestroyView()
,为什么不在创建或调用新片段之前先破坏所有内容?
答案 0 :(得分:0)
这可能与活动生命周期有关,因为片段从其父活动继承其生命周期调用。查看活动生命周期,您可能会看到同样的事情。完成细节片段后,您可能会完成活动,这就是为什么在恢复之前的活动时会收到这些电话的原因。
如果不需要,只需使用1个活动并使用FragmentTransaction
将其切换出来。