美文网首页
第一章 Activity

第一章 Activity

作者: knightls | 来源:发表于2018-04-20 19:49 被阅读0次

    1.生命周期

    0_1314838777He6C.gif

    onCreate:第一个调用,进行初始化工作,应用被杀死后重启才会再运行。
    onStart:正在启动,Activity
    onRestart:重新启动。一般是从不可见到可见状态。处于一种已经出现但是不能交互,不能看到的混沌状态。
    onRsume:这时Activity已经在前台了。
    onPause:正在停止,可以做一点微小的工作。不能续太多时间。
    onStop:正式停止,可以做一些比较大的工作,但也不能续很多时间。
    onDestory:正式被续了,这里需要交代后事。

    ——留得生前身后名,可怜白发生

    特定情况:

    1. 第一次启动,onCreate-onStart-onResume
    2. 打开新的Activity或切换到桌面,onPause-onStop
    3. 回到原Activity,onRestart-onStart-onResume
    4. back键: onPause-onStop-onDestory
    5. 回收后再打开,会从新走1的路程,但是不是所有过程都一样。

    要点:

    1. onResume和onPause是用于应用是否在前台。onStop和onStart是在应用是否可见
    2. 打开新的Activity是,是先执行旧Activity的onPause后在执行新的Activity的onResume。因此onPause不能执行重量级操作,为了是让新的Activity尽快到前台。

    ——年年岁岁花相似,岁岁年年人不同。

    异常声明周期

    1.资源相关的系统配置发生改变导致Activity被杀死后重建。
    状况:如屏幕旋转
    默认状态(只有异常状态下,正常退出不会调用),下Activity会先执行onSaveInstanceState后onDdestory,后使用onRestoreInstanceState 的内容进行重建。onSaveInstanceState在onStop之前调用,但是与onPause没有明显的先后顺序,故在onPause中释放资源要慎重。onRestoreInstanceState调用是在onStart之后。
    onSaveInstanceState中,系统会自动保存当前的Activity的视图(文本框输入的数据,listView的滚动位置等)
    保存顺序:Activity(onSaveInstanceState)-委托Window-上册ViewGroup-一一通知各个子元素保存。恢复也是类似。
    注:使用onSaveInstanceState保存的数据时,可以在onCreate中使用,这时需要判定 Bundle saveInstanceState是否为空。二onRestoreInstanceState时不需要。

    2. 内存不足导致第优先级的Activity被杀死
    Activity优先级:前台Activity,前台非可见(比如弹出一个dialog后,可见但是无法交互),后台(被暂停)。如果一个进程没有四大组件运行,则会很快被杀死,保证进程比较好的方法就是放入Service 从而保证优先级不被杀死。
    3. 不在配置变更的时候重启Activity
    一般是指定android:configChanges 的值,比如最常用三个locale,orientation,keyboardHidden。指定后可以在对应状态下不进行Activity重建。

    相关文章

      网友评论

          本文标题:第一章 Activity

          本文链接:https://www.haomeiwen.com/subject/cvugkftx.html