关于生命周期不得不说的事儿

            学习安卓也有小半年的时间,现在回头来看发现有的知识只是知道大概,没有系统性的在大脑里面留存,所以打算回过头来一是能记载这些时间的学习成果,二是以后遇到旧问题就可以直接翻出来看了。

       Activity是android开发的开始,Activity组成了android基本框架之一的Application,主要用于与用户的交互。而一个Activity的整个生命周期里面包含了程序的逻辑,有序的开始活动,停止活动并且最后释放内存。下面就说说生命周期的组成和各组成的功能。

        onCreate()在创建时进行初始化,里面可以加载布局文件,也可以对Window进行修改优化(Window包括应用程序窗口Application Window、对话框窗口Sub Window、系统窗口System Window),是主活动的开始,也是第一个系统调用的函数。

        onStart()是在屏幕由不可见到可见的时候调用,一般程序里面不会可以写出来默认可见。

        onResume()是要与用户进行交互的时候调用,此时活动处于运行状态,即活动位于返回栈的栈顶,而且用户可见。

        onPause()是打开另一活动的时候调用,此时释放上一活动占用CPU的资源,而且保存一些关键的数据,当前活动不再处于栈顶但依然可见。

        onStop()是在活动完全不可见的时候调用,它与onPause()的区别在于,如果打开的另一个活动是Dialog的话,当前的活动依然可见,onPause()会被调用而onStop()不会被调用。

        onDestroy()是在活动要被销毁的时候调用,此时用户返回app,为了保证手机的内存不被占用而调用。

        onRestart()在活动被重新启用的时候调用,就比如在打开另一个活动后又返回主活动的时候调用,此时活动由停止状态变为运行状态。

        这里还涉及了三种周期:

        完整生命期:从onCreate()到onDestroy()之间,即初始化到最后释放内存。

        可见生命期:从onStart()到onStop()之间,此时屏幕由可见到不可见,从start开始加载,到stop停止加载,从而可以打开其他活动,这样也保证了在停止状态下不会积累太多的内存。

        前台生命期:从onResue()到onPause()之间,即整个运行状态到打开另一个活动,此时活动可以与用户进行交互。

        一个主活动包含完整生命周期时的调用情况是:onCreate()--> onStart()-->onResume()

        从主活动打开另一个Normal Activity时生命周期的调用情况是:onPause()-->onStop()

        返回主活动:onRestart()-->onStart()-->onResume()

        从主活动打开另一个Dialog时的生命周期调用情况是:onPause()

        返回主活动:onResume()

        MainActivity退出时调用:onPause()-->onStop()-->onDestroy()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值