zoukankan      html  css  js  c++  java
  • android开发之生命周期

    android开发之生命周期

    一:Activity的生命周期:

    • 这几天了了解了安卓Activity的生命周期,对于生命周期有了大概的理解;
    • 一个Activity的生命周期也就是Activity从生成到运行,到登入其他界面时暂停,再到到当其他界面生成时停止,或者重新进入界面重写启动,直到最后activity被销毁的一系列过程;总的来说Activity是由Activity栈进管理,当来到一个新的Activity后,此Activity将被加入到Activity栈顶,之前的Activity位于此Activity底部。Acitivity一般意义上有四种状态:

      1.当Activity位于栈顶时,此时正好处于屏幕最前方,此时处于运行状态

      2.当Activity失去了焦点但仍然对用于可见(如栈顶的Activity是透明的或者栈顶Activity并不是铺满整个手机屏幕),此时处于暂停状态

      3.当Activity被其他Activity完全遮挡,此时此Activity对用户不可见,此时处于停止状态

      4.当Activity由于人为或系统原因(如低内存等)被销毁,此时处于销毁状态;

      如图:
    • (A)activity开始的时候,会首先调用:Oncreat()>>>Onstart()>>>OnResume(),这时(A)activity的界面进入到我们的视线;activity开始运行;
    • 当跳转到另外一个(B)activity,也就是进入到另外一个界面时,(A)activity会调用OnPause()函数;进入暂停阶段,然后(B)activity又会像(A)activity开始一样,调用:Oncreat()>>>Onstart()>>>OnResume(),当(B)activity进入我们的视线时,开始运行时,(A)activity会调用Onstop()函数;处于停止状态;
    • 当我们按下返回菜单,进行返回操作时,(B)activity会调用OnPause()函数,进入暂停状态,然后(A)activity会调用: OnRestart()>Onstart()>OnResume()函数,然后(A)activity的界面会进入我们的界面,然后(B)activity调用Onstop()>>OnDestroy()函数,此时(B)activity被销毁;
    • 而当我们调用的是我们在界面上定义返回(A)activity的button按钮时,(B)activity同样会先进入暂停,也就是调用了OnPause()函数,但是(A)activity调用的是:Oncreat()>>>Onstart()>>>OnResume(),也就是说,重新生成了一个(A)activity,而不是回到原先创建的(A)activity里面;然后(B)activity调用Onstop()暂停,而不是销毁;
    • 所以按菜单的返回键和界面上定义的activity上面的返回按钮是不一样的;
    • 当(A)activity调转到一个显示为能话框模式的(C)activity中时;同样的(A)activity会调用OnPause()函数;进入暂停阶段,然后(C)activity会首先调用Oncreat()>>>Onstart()>>>OnResume(),这时(A)activity的界面进入到我们的视线;但是(A)activity并没有停止,也就是没有调用Onstop的方法;而只有当我们从(C)activity登入到其他的activity时,(A)activity才会调用OnStop()停止;
    • 当进入(C)activity,然后按返回按钮时,(C)activity会调用Onpause()方法暂停,然后上一个activity这里是(A)activity就会调用OnResume()函数;(A)activity界面就出现在我们的面前了,同时(C)activity会调用Onstop>>OnDestroy()函数,进行销毁;(这里点击(A)activity界面也是一样)
    • 另外:当activity调用了Onpause()进入暂停阶段时;如果内存不足时,程序会被杀死,也就是销毁;

    二.构成生命周期的几个函数:

  • 相关阅读:
    HTML导航
    html5学习笔记
    crm使用soap启用和停用记录
    crmjs区分窗口是否是高速编辑(2)
    关于strace的一点东西
    Android studio第一次使用配置(三)gradle项目构建
    IntelliJ IDEA 问题总结之二(待补充) —— 快捷键、主题样式、导出jar、sqlite
    spark之map与flatMap差别
    leetcode:String to Integer (atoi)
    oracle索引的操作
  • 原文地址:https://www.cnblogs.com/hesi/p/5737371.html
Copyright © 2011-2022 走看看