zoukankan      html  css  js  c++  java
  • android开发学习笔记(二)-activity的生命周期

    一:activity的生命周期:

    二:created->resumed

    当一个应用程序的启动图标被用户点击后,应用程序开始从Activity的onCreate()方法开始执行。(当有多个activity文件时,执行Manifest文件中指定的主activity文件)。

    当执行完onCreate()方法后,迅速调用onStart(),onResume()方法,用户就可以进行相关的操作.

    在onCreate()方法中尽量少执行操作,防止程序运行很久都进入不了界面。

    三:Resumed->Paused && Paused->Resumed

    当启动另一个activity造成部分阻塞时(主activity部分可见),主activity调用onPause()方法进入Paused状态。当你需要重新回到主activity时,会通过调用onResume()方法回到屏幕并可执行相关操作。

    一个activity进入Paused状态后,他有可能回到屏幕,也有可能进入Stopped状态,然后进入Destryed状态关闭。

    当activity进入Paused状态后,应该在onPause()方法中停止Pause状态activity的操作,释放相应的资源,以及用户期待保存的资源。

    当activity重新回到Resumed状态时,应该初始化那些在Paused状态中释放的资源

    四:Paused->Stopped && Stopped->started

    当activity由部分阻塞变成完全阻塞(activity不可见)后,主activity调用onStop()进入Stopped状态。当你重新回到主activity时,会调用onRestart()方法.然后迅速调用onResume()方法.

    当activity进入stopped状态时,Activity对象会保存在内存中,当这个activty恢复到resumed状态时,会调用保存的activity。所以不需要初始化相应的组件。

    在onstop()方法中要释放不需要的资源,而在onRestart()方法中要重新创建释放的资源。

    五:destroyed:
    1个activity可能是正常退出(比如点击返回按钮/使用finish()方法退出),也有可能非正常退出(stop状态长时间不被使用/前台activity需要更多资源)。

    在正常退出时,不会保存相关数据,但非正常退出时会保存相关数据并在下一次创建Activity实例时恢复数据。

    被系统用来恢复相关数据而保存的数据叫做instance state。instance state保存在bundle对象中的key-value pairs中。

    在activity非正常退出时,会通过onSaveInstanceState() 保存相关的数据到对象Bundle中。在重新创建此activity时,会将bundle对象传递给onCreate()  与 onRestoreInstanceState()。通过bundle对象来恢复数据。

    参考资料:http://hukai.me/android-training-course-in-chinese/basics/activity-lifecycle/index.html.

  • 相关阅读:
    常用centos命令,经常忘记
    大数据hadoop之最简单理解
    企业级私有镜像仓库Harbor
    docker 修改国内源
    docker镜像仓库
    Dockerfile
    通过docker搭建LNMP平台(以wordpress为例)
    蓝鲸问题库
    docker常用命令
    LVS+Keepalive双机热备 <转>
  • 原文地址:https://www.cnblogs.com/shangshicc/p/4044397.html
Copyright © 2011-2022 走看看