• activity学习(1) 生命周期理解


    可以忽略onWindowFocusChanged、onSaveInstanceState、onRestoreInstanceState几个事件,这几个事件官网中的生命周期里面没有提到、忽略掉这几个方法看起来可能会更加易懂

    1、activity 刚开始启动执行的顺序: onCreate()——onStart()——onResume()——onWindowFocusChanged()

    2、activity被其它activity覆盖( android:theme="@android:style/Theme.Dialog")或者锁屏执行的顺序:onPause()——onWindowFocusChanged(),暂停当前activity的执行

      2.1、当系统资源不足被,kill掉activity之前前执行:onSaveInstanceState()——onDestory(),kill掉之前要做的一些保存数据的操作可以放到此方法中完成

      2.2、onPause()、onStop(),当被覆盖的activity被完全覆盖时是处在onStop(),当没有被完全覆盖处在onPause()

    3、当activity被其它activity覆盖( android:theme="@android:style/Theme.Dialog")回到前台或解锁时执行:onResume()——onWindowFocusChanged()

    4、当activity转到其他新的activity或按HOME键执行顺序:onPause()——onWindowFocusChanged()——onSaveInstanceState()——onStop()

    5、用户回退至activity执行顺序(没有被系统kill掉的执行顺序):onRestart()——onStart()——onResume()

      5.1、如果已经被kill掉,执行顺序:onCreate()——onStart()——onRestoreInstanceState()——onResume()——onWindowFocusChanged()

    6、当用户退出当前activity(通过返回键退出),执行顺序:onPause()——onWindowFocusChanged()——onSaveInstanceState()——onStop()——onDestory()

    7、用户转屏时是销毁掉当前的activity,然后重新生成新的activity,所以执行顺序如下:

    onPause()(——onWindowFocusChanged())——onSaveInstanceState()——onStop()——onDestory()——onCreate()——onStart()——onRestoreInstanceState()——onResume()——onWindowFocusChanged()

       7.1、此处经测试发现onWindowFocusChanged方法没有被调用

    补充:

    onSaveInstanceState:此方法貌似只有在activity被遮挡、按了home键、或者打开新的activity覆盖才会调用。返回按钮、系统kill等直接触发onDestory()方法的操作都不会调用此方法

    onRestoreInstanceState:此方法只有在需要恢复的时候调用(不是调用了onSaveInstanceState,重新打开时就一定调用onRestoreInstanceState,比如后台的activity被系统kill掉,重新打开时就不会调用onRestoreInstanceState了)

    以上都是个人理解,如果有不对之处,希望指正,多谢。

  • 相关阅读:
    destoon短信接口修改方法
    关于微信公众平台模拟登录
    PHP中基本符号及使用方法
    day03-集合
    day02-字符串、字典
    day02-购物车程序练习
    day02-模块、数据类型、三元运算、列表、元组
    day01-if else、while、for、continue、break
    day01-变量、字符编码、交互输入
    通过chrome识别手机端app元素--Chrome:inspector
  • 原文地址:https://www.cnblogs.com/lxiang/p/3642802.html
Copyright © 2020-2023  润新知