• 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.

  • 相关阅读:
    Appium 服务关键字(转)
    android自动化之appium的环境搭建
    关于性能测试几个名词概念的说明
    关于.net服务启动注册到zookeeper,但是注册节点20分钟自动消失解决办法
    关于tomcat启动报“this web application instance has been stopped already”的处理
    loadrunner在win10破解提示:Cannot save the license information because acceses to the registry is denied的解决办法
    Teamcity部署.net服务“无法连接到远程服务器”解决方式
    数据库主从不同步问题随笔
    eclipse 常用快捷键
    在linux中安装jdk以及tomcat并shell脚本关闭启动的进程
  • 原文地址:https://www.cnblogs.com/shangshicc/p/4044397.html
Copyright © 2020-2023  润新知