【发布时间】:2014-11-10 14:55:32
【问题描述】:
我以为我完全理解了activity 的lifecycle,直到我今天遇到了一个有趣的问题。
我创建了一个从TabActivity 扩展的选项卡类型的活动作为描述问题的示例。
我还在activity的生命周期callback中添加了日志代码。这是详细信息:
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
当我按返回键退出应用时,没有onStop/onDestroy的日志代码
当我重新启动应用程序时,会再次调用 oncreate/onStart。
MJ_TabMainActivity=>onCreate com.mujing.distplatform.MJ_TabMainActivity@42385718
MJ_TabMainActivity=>onStart com.mujing.distplatform.MJ_TabMainActivity@42385718
而且,onStop 和 ondestroy 会在 onStart 之后立即调用 ....但是实例值 (41c13968) 与 onStart(42385718) 中的不同。也就是说,旧的 TabMainActivity 实例刚刚被销毁。
MJ_TabMainActivity=>onStop com.mujing.distplatform.MJ_TabMainActivity@41c13968
MJ_TabMainActivity=>onDestroy com.mujing.distplatform.MJ_TabMainActivity@41c13968
请您帮忙解释一下它是否符合官方文件。如果不是,那么它的根本原因是什么?
【问题讨论】:
-
logcat 中还有其他内容吗?不要过滤 logcat,因为你可能会错过一些重要的东西
-
很抱歉延迟提供有关此方案的更多详细信息。
标签: java android android-activity lifecycle