[英]Method OnCreate being called again when I return from another activity
想象该应用程序有两个活动,即A和B。从A,您按下一个启动B的按钮。从B,您按下另一个运行setResult(RESULT_CANCEL, new Intent()); finish();
按钮setResult(RESULT_CANCEL, new Intent()); finish();
setResult(RESULT_CANCEL, new Intent()); finish();
这样,视图弹出回到A。
我正在两台设备上对此进行测试,一台运行Gingerbread(GB),另一台运行Jellybean(JB)。
在GB上,当我将表格B返回A时,不会调用onCreate
方法的方法,我认为这意味着未取消分配活动(也未调用onDestroy
)。
然而在JB,该方法onCreate
被再次调用,我不明白为什么。
最大的问题是,在我的应用程序中, onCreate
用于从互联网加载数据。 这样,即使已经下载了数据,JB也会始终重新加载该数据。
这里到底发生了什么,为什么它们的行为有所不同?
该框架在需要创建您的Activity的新实例时将调用onCreate()
,这很可能在这里发生。
完全可以接受的是,在您离开它之后,销毁您的Activity( onStop()
),并在您回来时重新创建它。 无法保证何时会发生这种情况。
通常 ,只有在出现内存压力时才会发生这种情况,但这会因设备而异(当然取决于操作负载)。 您可以通过在Settings -> Developer Options
”中启用“不保留活动”来强制这种行为立即发生。
最后,您还可以使用此命令直接查看活动层次结构: adb shell dumpsys activity activities
。 解码所有内容都需要一定的经验,但是应该在任何时间点让您大致了解Activity Manager的世界观。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.