在onDestroy之后,重新调用生命周期回调

时间:2016-02-10 08:22:36

标签: android android-fragments android-viewpager android-lifecycle

我有一个带有viewpager和三个标签的主要活动,每个标签都有自己的片段布局。在三个片段的每一个中我实现了生命周期 回电话。应用程序工作正常,直到我按下关闭屏幕的按钮。屏幕关闭时我发现之后 三个碎片被破坏后再次重新创建,onAttachonCreate,......等再次被调用,并在下面发布的日志中显示。

请让我知道为什么当我关闭屏幕时onAttachonCreate,.....等会被重新调用?

logcat的

02-10 09:14:34.606 20109-20109/com.example.com.vpager_00 W/Frag_1: onPause()
02-10 09:14:34.606 20109-20109/com.example.com.vpager_00 W/Frag_2: onPause()
02-10 09:14:34.606 20109-20109/com.example.com.vpager_00 W/Frag_3: onPause()
02-10 09:14:34.606 20109-20109/com.example.com.vpager_00 W/MainActivity: onPause()
02-10 09:14:34.666 20109-20109/com.example.com.vpager_00 W/Frag_1: onStop()
02-10 09:14:34.666 20109-20109/com.example.com.vpager_00 W/Frag_2: onStop()
02-10 09:14:34.666 20109-20109/com.example.com.vpager_00 W/Frag_3: onStop()
02-10 09:14:34.666 20109-20109/com.example.com.vpager_00 W/MainActivity: onStop()
02-10 09:14:35.336 20109-20109/com.example.com.vpager_00 W/Frag_1: onDestroy()
02-10 09:14:35.336 20109-20109/com.example.com.vpager_00 W/Frag_2: onDestroy()
02-10 09:14:35.336 20109-20109/com.example.com.vpager_00 W/Frag_3: onDestroy()
02-10 09:14:35.336 20109-20109/com.example.com.vpager_00 W/MainActivity: onDestroy()
02-10 09:14:35.456 20109-20109/com.example.com.vpager_00 W/Frag_1: onAttach()
02-10 09:14:35.456 20109-20109/com.example.com.vpager_00 W/Frag_1: onCreate()
02-10 09:14:35.456 20109-20109/com.example.com.vpager_00 W/Frag_2: onAttach()
02-10 09:14:35.456 20109-20109/com.example.com.vpager_00 W/MainActivity: onFragRefHeld
02-10 09:14:35.456 20109-20109/com.example.com.vpager_00 W/Frag_2: onCreate()
02-10 09:14:35.456 20109-20109/com.example.com.vpager_00 W/Frag_3: onAttach()
02-10 09:14:35.456 20109-20109/com.example.com.vpager_00 V/Frag_3: getView(): null
02-10 09:14:35.456 20109-20109/com.example.com.vpager_00 W/Frag_3: onCreate()
02-10 09:14:35.456 20109-20109/com.example.com.vpager_00 V/Frag_3: getView(): null
02-10 09:14:35.456 20109-20109/com.example.com.vpager_00 W/MainActivity: onCreate()
02-10 09:14:35.466 20109-20109/com.example.com.vpager_00 W/Frag_1: onCreateView()
02-10 09:14:35.466 20109-20109/com.example.com.vpager_00 W/Frag_1: onViewCreated()
02-10 09:14:35.466 20109-20109/com.example.com.vpager_00 W/Frag_1: onActivityCreated()
02-10 09:14:35.466 20109-20109/com.example.com.vpager_00 W/Frag_2: onCreateView()
02-10 09:14:35.476 20109-20109/com.example.com.vpager_00 V/Frag_2: getView(): null
02-10 09:14:35.476 20109-20109/com.example.com.vpager_00 W/Frag_2: onViewCreated()
02-10 09:14:35.476 20109-20109/com.example.com.vpager_00 W/Frag_2: onActivityCreated()
02-10 09:14:35.476 20109-20109/com.example.com.vpager_00 W/Frag_3: onCreateView()
02-10 09:14:35.476 20109-20109/com.example.com.vpager_00 V/Frag_3: getView(): null
02-10 09:14:35.476 20109-20109/com.example.com.vpager_00 W/Frag_3: onViewCreated()  

1 个答案:

答案 0 :(得分:2)

这很正常。当屏幕关闭时,Android可以通过任何可见的活动执行任何操作,以便在屏幕关闭时回收资源并帮助设备休眠。如果用户看不到应用,您可以随时预期Android可以回收所需的资源。

你应该随时准备好处理生命周期事件并在发生这种情况时自行恢复。