• android程序活动生存期理解


    一、完整生存期:

        范围:是指对onCreate方法的第一次调用和对onDestroy方法的最后一次调用之间的时间范围(在某些特定的情况下onDestroy方法可能没调用活动进程就被终止了)

        过程:onCreate接收包含UI状态的Bundle,改对象是最后一次调用onSaveInstanceState时保存的。恢复上次一次的界面状态既可以通过onCreate方法也可以通过,onRestoreInstanceState来实现

        注意:在android中最好避免创建短期的对象,对象的快速创建和销毁会导致额外的垃圾收集过程,如果创建的对象时有规律的建议只在onCreate生成一次。

        经历次数:一次

    二、可见生存期

        范围:是指调用onStart和onStop之间的那段时间,在这段时间活动可能是没有焦点的或者是可能被部分遮挡了(Android运行时可能不调用onStop而终止可见生存周期的活动)

        过程:onCreate之后就会调用onStart,当Activity处于停止状态,即他被一个新的Activity覆盖掉了,用户通过Activity回到前一个Activity时就会调用onRestart  然后调用onStart 然后再调用onR

        经历次数:多次,Activity会在前台和后台来回切换

    三、活动生存期

       范围:是指onRsume及其对应的onPause之间那段时间

       过程:调用onStar后调用onRestar,然后就会调用onResume,当一个新的Activity被打开后,原来的Activity就会调用onPause,如果新打开的Activity并没有完全覆盖原来的Activity或者新的Activity是半透明状态原来的Activity还可见那么只会调用onPause使得Activity处于可见生存期,否则继续往下调用onStop。在onPause之前会调用onSaveInstaceState,用于保存UI状态,这个UI状态会传递给onCrate和onRestoreInstanceState

       注意:在活动生存期内可以安全的假设onSatveInstance和onPause会被调用,大部分活动至少需重写onPause方法来提交未保存的改动,因为在onPause之外活动可能在没有任何警告的情况下被终止。在活动不在前台的时候也可以根据应用程序的架构,选择挂起线程、进程或者广播接收器。onResume方法可以是轻量级的,因为要求加载UI状态的时候可以由onCreate和onRestoreIntance方法处理。使用onResume可以重新注册已经使用onPause停止的广播接收器或者其他进程。onPause最好也是轻量级的因为下一个要显示到前台的activity的onRsume要等当前activity的onPause返回后才执行。

    四、其他

       1、当Activity处于暂停或停止状态下,操作系统内存缺乏可能会销毁Activity。或者其他意外突发情况,Activity被操作系统销毁,内存回收时onSaveInstanceState会被调用,但是当用户主动销毁一个Activity时(例如按返回键)onSaveInstanceState就不会被调用,onSaveInstanceState适合保存一些临时性的数据,onPause适合保存一些持久化的数据

      2、onRestoreInstanceState是在onStart和onPostCreate之间执行用户恢复UI状态

      3、如果数据比较重要但是数据在运算中则应该缓存他们,如果以及运输结束有结果了则应该对他们进行持久化操作

      4、只要Activity被覆盖一定会调用onPause方法,只要Activity重新回到前台一定会调用onResume方法

      5、开发文档中的资料:

    参考资料:

      android开发文档

      http://wenku.baidu.com/view/b387f9d9ce2f0066f5332282.html

      Professional Android 2 Application Development P74~78

  • 相关阅读:
    两个问题解答、opencv、tensorflow、numpy、matplotlib的基本使用
    图像处理之几何变换
    anaconda一站式环境的搭建(anaconda、tensorflow、opencv)
    python基础--自定义模块、import、from......import......
    python基础--闭包、装饰器
    python基础--迭代器、生成器
    python基础--函数全解析(2)
    CSS弹性布局
    CSS定位布局
    仿写博客园主页
  • 原文地址:https://www.cnblogs.com/cappuccino/p/2120998.html
Copyright © 2020-2023  润新知