Onelong

分享知识,与你一起进步......
RSS icon Home icon
  • 深入理解 Android Activity的生命周期

    post by onelong / 2010-7-22 20:22 Thursday [android]

    之前也说过了解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()方法或者系统决定停止该活动以释放资源!

    有兴趣的朋友看看《Google android 揭秘》吧!蛮有意思的!

    引用地址:
     

    我要评论