您的位置:首页 > 其它

Adnroid基础(一) Activity生命周期理论讲解

2016-12-15 19:38 197 查看
                                              
Activity生命周期


         Activity是应用程序的表现层,应用程序中的每个屏幕显示都通过继承和扩展基类Activity来实现的.一个应用程序中可以包含多个Activity,它们之间可以相互跳转,来达到手机屏幕之间的相互切换。Activity利用View来实现应用程序的图形用户界面GUI),而手机用户则直接通过GUI和应用程序进行交互,如应用程序通过GUI向用户显示信息,用户通过GUI向应用程序发出指令和响应。      

——Activity使用的步骤:

     (1)创建Activity,创建类继承Activity或其子类

     (2)配置Activity

              必须显式在Manifest配置文件<application>中为其添加<activity>,为<activity>配

        置android:name属性,值为.className(如果是在自定义的包下定义的activity那么android:name属性就应该是包名+类名。)

——Activity栈(任务Task)

Android系统中,所有的Activity被保存在Activity栈中,当启动一个新的Activity时,这个Activity就被压入Activity栈顶部,如果用户通过”返回”键回到上一个Activity的界面,那么栈顶的Activity将会被弹出,之前位于栈顶的第二个Activity就变成为新的栈顶Activity,并显示在屏幕上。所以当前显示在用户面前的Activity都是栈顶元素。

 

——Activity生命周期

       掌握活动的生命周期对任何Android开发者来说都非常重要,当你深入理解活动的生命周期之后,就可以写出更加连贯流畅的程序,并在如何合理管理应用资源方面,你会发挥的游刃有余。你的应用程序将会拥有更好的用户体验。

Activity的生命周期是指一个Activity从创建到销毁的过程,期间可能经历多个状态的变化,每次状态的变化都会触发相应的回调方法。



注意说明:

       Activity创建配置完成之后,至于该Activity何时被实例化,它的方法何时被调用,Activity何时结束等,对开发者来说是完全透明的。而是由android系统决定的。                      

     

       Activity的回调机制:当Activity被部署在Android应用中之后,随着应用程序的运行,Activity会不断地在不同的状态之间切换,该Activity中特定的方法就会被回调,那么开发者就可以选择性的重写这些方法来加入业务相关的处理。

       当Activity处于Android应用中运行时,它的活动状态由Android以Activity栈的形式管理。当前活动的Activity位于栈顶,随着不同应用的运行,每个Activity都有可能从活动状态转入非活动状态,也可能从非活动状态转入活动状态。

       所以将Activity生命周期分为四个阶段:

       运行状态:可见,并且可操作

                        onCreate--onStart---onResume

                        onRestart--onStart---onResume

       暂停状态:可见,但是不可操作 

                             
onPause

       停止状态:不可见,并且也不可操作

                             
onStop

       销毁状态:该Activity结束,或Activity所在的Dalivik进程被结束  

                             
onDestory

      

       onCreate():Activity在实例化过程被调用,进行创建工作,只会调用一次,一般创建界面,做一些数据的初始化工作。

      onStart():Activity启动过程的回调函数。

      onResume():恢复Activity时被回调,onStart()方法后一定会回调该方法,可操作。

      onPause():暂停Activity时被回调(Activity失去操作焦点,但可见),系统会停止动画等消耗CPU的事情。应该在这里保存你的一些数据,因为这个时候你的程序的优先级降低,有可能被系统收回。在这里保存的数据,应该在onResume里读出来。

       onStop():停止Activity时被回调(Activity失去操作焦点,不可见)。

      onDestory():销毁Activity时被回调,该方法只会被调用一次(回收资源)这是Activity被kill前最后一个被调用方法了。

      onRestart():这个方法在活动由停止状态变为运行状态之前调用,也就是活动被重新启动了。

Activity生命周期的三种状态:

1)Activity完整的生命周期:指从调用onCreate()创建Activity到最终调用onDestroy()销毁Activity的过程

onCreate()-->onStart()--->onResume()-->onPause()-->onStop()-->onDestory()

2)可见Activity的生命周期:指从调用onStart()/onRestart()开始到调用onStop()结束的过程

onStart()/onRestart()-->onResume()-->onPause-->onStop()

3)活跃Activity的生命周期:指从调用onResume()到调用onPause()暂停的过程

onResume()-->onPause()

 

Activity生命周期的几个过程,下面细说几个过程:

1.启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。

2.当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行。

3.当前Activity由被覆盖状态回到前台或解锁屏:系统会调用onResume方法,再次进入运行状态。

4.当前Activity转到新的Activity界面或按Home键回到主屏,自身退居后台:系统会先调用onPause方法,然后调用onStop方法,进入暂停状态。

5.用户后退回到此Activity:系统会先调用onRestart方法,然后调用onStart方法,最后调用onResume方法,再次进入运行状态。

6.当前Activity处于被覆盖状态或者后台不可见状态,即第2步和第4步,系统内存不足,杀死当前Activity,而后用户退回当前Activity,再次调用onCreate方法、onStart方法、onResume方法,进入运行状态。

7.用户退出当前Activity:系统先调用onPause方法,然后调用onStop方法,最后调用onDestory方法,结束当前Activity。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: