Android活动的生命周期是什么?为什么这么多的发音相似的方法(onCreate(),onStart(),onResume()初始化过程调用),和许多其他人(onPause(),onStop(),onDestroy())呼吁在结束了吗?
这些方法何时被调用,它们应该如何正确使用?
有没有简单的方法来确定某项活动是否有效?我想根据哪些活动是活跃的来做某些事情.例如:
if(activityrunning == activity1)
//do this
else if (activityrunning == activity2)
//do something else
Run Code Online (Sandbox Code Playgroud) 从文档中(至少对我来说)不清楚是否保证调用Activity.onStop.有两个地方看似矛盾的信息.
请注意,在内存不足的情况下,可能永远不会调用此方法,在这种情况下,系统没有足够的内存来保持活动进程在调用onPause()方法后运行.
从Honeycomb开始,应用程序在其onStop()返回之前不处于killable状态.这可能会在调用onSaveInstanceState(Bundle)时产生影响(可以在onPause()之后安全地调用它,并允许和应用程序安全地等到onStop()以保存持久状态.
找到两种文件都说实话的方式有点困难.我能想到的唯一场景是:假设您正在使用目标API 21(使用min sdk 10)进行开发,并使用onStop()方法编写Activity.如果您随后在API 10手机上运行此应用程序,则无法保证调用onStop().这种情况意味着上述第1点和第2点的文档都是正确的.否则,其中一个必须是假的.
看一下活动生命周期图,我注意到onPause()并且onStop()都可能导致"进程"被杀死.onCreate()当用户想要恢复其应用程序时,需要调用它.重点onStop()不一定是,也不是onDestroy(),但这onPause()可能是活动可能看到的唯一事件.在这种情况下,onPause()必须处理保存应用程序状态,以便用户以后可以返回它,无论是否onStop()被调用.
我可以看到onDestroy()用于清理活动特定资源,这些资源在进程终止操作中自然会被消除.还有什么比这onDestroy()更好的吗?
那会有什么onStop()好处?我为什么要覆盖它?