我以为我完全理解了lifecycle of activity,直到今天我遇到了一个有趣的问题。
我创建了一个从TabActivity扩展的选项卡类型的活动,作为描述问题的一个例子。
我还在callback的生命周期activity中添加了日志代码。详情如下:
protected void onRestart() {
super.onRestart();
MJ_MiscUtils.danielPrintfDebug("MJ_TabMainActivity=>onRestart" , toString() );
}
protected void onStop() {
super.onStop();
MJ_MiscUtils.danielPrintfDebug("MJ_TabMainActivity=>onStop" , toString() );
}
protected void onStart() {
super.onStart();
MJ_MiscUtils.danielPrintfDebug("MJ_TabMainActivity=>onStart", toString() );
}
public void onCreate(Bundle savedInstanceState) {
....
MJ_MiscUtils.danielPrintfDebug("MJ_TabMainActivity=>onCreate" , toString() );
}
protected void onDestroy() {
super.onDestroy();
MJ_MiscUtils.danielPrintfDebug("MJ_TabMainActivity=>onDestroy", toString() );
}这是日志:
MJ_TabMainActivity=>onCreate com.mujing.distplatform.MJ_TabMainActivity@41c13968
MJ_TabMainActivity=>onStart com.mujing.distplatform.MJ_TabMainActivity@41c13968 当我按后退键退出app时,没有onStop/onDestroy的日志代码
当我重新启动应用程序时,oncreate/onStart将再次被调用。
MJ_TabMainActivity=>onCreate com.mujing.distplatform.MJ_TabMainActivity@42385718
MJ_TabMainActivity=>onStart com.mujing.distplatform.MJ_TabMainActivity@42385718 并且,在onStop onStart ....But之后立即调用....But和ondestroy实例值(41c13968)与onStart(42385718)中的实例值不完全相同。也就是说,旧的TabMainActivity实例刚刚被销毁。
MJ_TabMainActivity=>onStop com.mujing.distplatform.MJ_TabMainActivity@41c13968
MJ_TabMainActivity=>onDestroy com.mujing.distplatform.MJ_TabMainActivity@41c13968 请您解释一下,它是否符合正式文件。如果没有,那么其根本原因是什么?
发布于 2014-11-12 12:46:56
很抱歉延迟提供有关此场景的详细信息。实际上,这种紊乱是由我的代码中的一个错误引起的。在我的项目中,将为数据聚合创建一个服务。为了调试这个服务,我在某个地方添加了一些android.os.Debug.waitForDebugger()。当我拔掉USB接口并运行应用程序时,就会出现这个问题。当我移除它们时,电梯周期的回调就会正常进行。
https://stackoverflow.com/questions/26846511
复制相似问题