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"
    

     

  • 相关阅读:
    网上零售是国内品牌开拓海外市场的最佳途径
    一个都不能少,海外B2C实战攻略全解
    我想和你一起浅浅淡淡的生活
    中国十大电子商务网站排名
    外贸B2C必读:外贸B2C入行指南(一)
    外贸B2C必读:外贸B2C入行指南(二)
    09年美国最热门的100个B2C网站,他们是怎么成功的?
    几个jsp模块
    【Quartz】【程序目录结构】/DetectNonWorkingDay/src/main/java/com/apple/sqm/dnwd/detect/delta/Detect.java
    Servlet 工作原理解析
  • 原文地址:https://www.cnblogs.com/loaderman/p/6415763.html
Copyright © 2011-2022 走看看