zoukankan      html  css  js  c++  java
  • Activity的生命周期

    Activity 有三个状态:

      当它在屏幕前台时,响应用户操作的Activity, 它是激活或运行状态.

      当它上面有另外一个Activity,使它失去了焦点但仍然对用户可见时(如右图), 它处于暂停状态.

      当它完全被另一个Activity覆盖时则处于停止状态.


     

      * 开启:onCreate()-->onStart()-->onResume()

      * 关闭:onPause()-->onStop()-->onDestroy()

      * 最小化:onPause()-->onStop()

      * 最大化:onRestart()-->onStart()-->onResume()


    BACK键

       按Back键时,应用程序将结束,将先后调用onPause()->onStop()->onDestory()三个方法。
       再次启动App时,会执行onCreate()->onStart()->onResume()


    HOME键

       当我们按HOME的时候,Activity先后执行了onPause()->onStop()这两个方法,这时候应用程序并没有销毁。而当我们从桌面再次启动应用程序时,则先后分别执行了onRestart()->onStart()->onResume()三个方法

       注意:当Activity在后台时候,如果系统内存不够用,后台的Activity很有可能会被强制销毁回收内存的,那么一定会触发onSaveInstanceState(Bundle outState) 方法,我们可以把想保存的数据保存在 outState对象里,等Activity被重新创建执行onCreate(Bundle saveInstanceState) 从参数saveInstanceState再读取保存的数据


    • 锁屏:onPause()->onStop()
    • 解锁:onStart()->onResume()


    ActivityA 打开 ActivityB

    • A:onPause()
    • B:onCreate()
    • B:onStart()
    • B:onResume()
    • A:onStop()
    • 但是,如果ActivityB的样式是Dialog样式,B没有完全遮挡A,ActivityB的生命周期跟刚才一样,但是ActivityA并没有执行onStop()

     

    ActivityB 返回 ActivityA

    依次会执行:

    • B:onPause()
    • A:onRestart()
    • A:onStart()
    • A:onResume()
    • B:onStop()
    • B:onDestory()

    横竖屏切换activity的生命周期

      * 先销毁activity,然后在重新创建一个新的activity页面

      * 固定activity的屏幕朝向 screenOrientation

      * landscape :横屏

      * portrait :竖屏,默认方向

      * sensor :自适应

      * 使activity不敏感屏幕朝向的变化

           android:configChanges="orientation|keyboard|screenSize"
    

     

  • 相关阅读:
    面向对象的设计模式2
    数据结构
    算法题目1
    5.7(1) 反射
    hashMap原理(java8)
    6.1 接口
    18.1 线程
    13.2 具体的集合
    scrapy(2)——scrapy爬取新浪微博(单机版)
    5.1 类、超类和子类
  • 原文地址:https://www.cnblogs.com/loaderman/p/6415763.html
Copyright © 2011-2022 走看看