Android's Activity生存周期方法描述
方法 | 描述 | 可被杀死 | 下一个 | ||
---|---|---|---|---|---|
onCreate() |
在activity第一次被创建的时候调用。这里是你做所有初始化设置的地方──创建视图、绑定数据至列表等。如果曾经有状态记录(参阅后述Saving Activity State。),则调用此方法时会传入一个包含着此activity以前状态的包对象做为参数。
总继之以 |
否 | onStart() | ||
onRestart() |
在activity停止后,在再次启动之前被调用。
总继之以 |
否 | onStart() | ||
onStart() |
当activity正要变得为用户所见时被调用。
当activity转向前台时继以 |
否 | onResume() or onStop() | ||
onResume() |
在activity开始与用户进行交互之前被调用。此时activity位于堆栈顶部,并接受用户输入。
继之以 |
否 | onPause() | ||
onPause() |
当系统将要启动另一个activity时调用。此方法主要用来将未保存的变化进行持久化,停止类似动画这样耗费CPU的动作等。这一切动作应该在短时间内完成,因为下一个activity必须等到此方法返回后才会继续。
当activity重新回到前台是继以 |
是 | onResume() or onStop() | ||
onStop() |
当activity不再为用户可见时调用此方法。这可能发生在它被销毁或者另一个activity(可能是现存的或者是新的)回到运行状态并覆盖了它。
如果activity再次回到前台跟用户交互则继以 |
是 | onRestart() or onDestroy() | ||
onDestroy() |
在activity销毁前调用。这是activity接收的最后一个调用。这可能发生在activity结束(调用了它的 finish() 方法)或者因为系统需要空间所以临时的销毁了此acitivity的实例时。你可以用isFinishing() 方法来区分这两种情况。 |
是 | nothing |
请注意上表中可被杀死一列。它标示了在方法返回后,还没执行activity的其余代码的任意时间里,系统是否可以杀死包含此activity的进程。三个方法(onPause()
、 onStop()
和
onDestroy()
)被标记为“是”。onPause()
是三个中的第一个,它也是唯一一个在进程被杀死之前必然会调用的方法──onStop()
和 onDestroy()
有可能不被执行。因此你应该用 onPause()
来将所有持久性数据(比如用户的编辑结果)写入存储之中。
在可被杀死一列中标记为“否”的方法在它们被调用时将保护activity所在的进程不会被杀死。所以只有在onPause()方法返回后到
onResume()
方法被调用时,一个activity才处于可被杀死的状态。在onPause()再次被调用并返回之前,它不会被系统杀死。