繁体   English   中英

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

[英]after onDestroy, the life cycle callbacks are re-called

我有一个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()  

这很正常。 当屏幕关闭时,Android可以执行任何可见的活动,以回收资源并帮助设备在屏幕关闭时进入睡眠状态。 您始终可以期望,如果用户看不到某个应用,则Android可能会回收它占用的资源。

您应该始终准备好处理生命周期事件,并在发生这种情况时恢复自己的状态。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM