深入理解 Android Activity的生命周期
2010-10-13 14:08:29| 分类: Android | 标签:周期 调用 activity android protected |字号大中小 订阅
之前也说过了解Android Activity是十分重要的,因为android的应用的生命周期是由android 系统决定的!Android Activity生命周期中可认为分为7个阶段;用7个函数原型来描述吧
protected void onCreate(Bundle savedInstanceState)
protected void onStart()
protected void onResume()
protected void onPause()
protected void onStop()
protected void onRestart()
protected void onDestroy()
savedInstanceState对象是用于保存activity的对象的状态,为什么要提到这点呢?看看activity的过程描述吧!
更详细的说明可以看看《Google android 深入浅出》一书!不过看到上图,我想大家都可以很直观了解到activity的整个过程。每次焦点的变化同时有相应的阶段,这样也是android之所以高效原因之一吧!图上有三个循环,那又代表什么呢?没错,是activity的三个层面!看下图吧!
通过两个图,你会更清楚的了解activity的生命周期了,离开了可见阶段,或者说失去了焦点,activity就很可能被进程终止了!为什么说是可能呢?如果你可过我之前的博文的话,你应该知道android 虚拟机的工作原理!
activity主要生命周期的方法说明:
onCreate(Bundle savedInstanceState):创建activity时调用。设置在该方法中,还以Bundle的形式提供对以前储存的任何状态的访问!
onStart():activity变为在屏幕上对用户可见时调用。
onResume():activity开始与用户交互时调用(无论是启动还是重新启动一个活动,该方法总是被调用的)。
onPause():activity被暂停或收回cpu和其他资源时调用,该方法用于保存活动状态的,也是保护现场,压栈吧!
onStop():activity被停止并转为不可见阶段及后续的生命周期事件时调用。
onRestart():重新启动activity时调用。该活动仍在栈中,而不是启动新的活动。
onDestroy():activity被完全从系统内存中移除时调用,该方法被调用可能是因为有人直接调用onFinish()方法或者系统决定停止该活动以释放资源!