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()进入暂停阶段时;如果内存不足时,程序会被杀死,也就是销毁;

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

android开发之生命周期的更多相关文章

  1. Android开发——Activity生命周期

    Android开发--Activity生命周期 Activity作为四大组件之首,也是使用最频繁的一种组件.本文将主要讲解Activity生命周期,包括正常情况下的Activity生命周期和异常情况下 ...

  2. android开发------Activity生命周期

    这几天工作比较忙,基本没有什么时间更新播客了. 趁着今晚有点时间,我们来简单说一下什么是Activity生命周期和它们各阶段的特征 什么是生命周期 在还没有接触android开发的时候,听到有人说Ac ...

  3. Android开发--Activity生命周期回顾理解

    Activity和Servlet一样,都用了回调机制.我们通过类比servlet来学习Activity.当一个servlet开发出来之后,该servlet运行于Web服务器中.服务器何时创建servl ...

  4. Android Activity的生命周期简单总结

    Android Activity的生命周期简单总结 这里的内容参考官方的文档,这篇文章的目的不是去总结Activity是如何启动,如何创造,以及暂停和销毁的,而是从实际开发中分析在Activity各个 ...

  5. Android内的生命周期整理

    1. Android App的生命周期: 2. Application的生命周期: 3. Activity的生命周期: 3.1 Fragment的生命周期: 4. Service的生命周期:5. Br ...

  6. 重温Android和Fragment生命周期

    重温下Android和Fragment生命周期,理解生命周期方法的作用,什么时候调用,可以做一些什么操作. 1.Android生命周期 1.1 生命周期图 1.2 生命周期函数说明 onCreate: ...

  7. 浅尝Spring注解开发_Bean生命周期及执行过程

    Spring注解开发 浅尝Spring注解开发,基于Spring 4.3.12 包含Bean生命周期.自定义初始化方法.Debug BeanPostProcessor执行过程及在Spring底层中的应 ...

  8. Xamarin.Android活动的生命周期

    一.前言 用过Android手机的人一定会发现一种现象,当你把一个应用置于后台后,一段时间之后在打开就会发现应用重新打开了,但是之前的相关的数据却没有丢失.可以看出app的“生命”是掌握在系统手上的, ...

  9. Android Activity的生命周期

    一.为什么要了解Activity的生命周期 activity is directly affected by its association withother activities, its tas ...

随机推荐

  1. TestLink测试软件安装条件检查不通过的解决方案

    在第一次安装的时候出现这个错误信息 解决办法: 修改config.inc.php文件里的两个属性值为: $tlCfg->log_path = TL_ABS_PATH . 'logs' . DIR ...

  2. C#开源系统大汇总

    一.AOP框架 Encase 是C#编写开发的为.NET平台提供的AOP框架.Encase 独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖配置文件的方式.这种部署方面(as ...

  3. Html5 Egret游戏开发 成语大挑战(八)一般性二级页面处理

    在游戏中,我们一般会有各种各样的二级页面,比如游戏暂停界面或者游戏结束界面,这些界面组成了对玩家交互主要手段,在游戏开发中,对于这些界面的coding组织是非常有学问的,如果倒退到十年前,游戏开发的老 ...

  4. IE8下获取iframe document EVENT对象的问题

    在一个页面中设置iframe的document Onclick 事件获取在iframe中的document被点击的对象,W3C如下: document.getElementById('iframe的I ...

  5. GPS围栏两个多边形相交问题的奇葩解法

    前言 GPS测量仪测量的产地面积,然后提交到系统中,系统需要校验这块产地和其他产地是否有重叠,重叠超过10%就要提出警告这块产地已经被XXX登记入库了.GPS测量仪测量出来的数据是连续的经纬度坐标数据 ...

  6. js 判断一组日期是否是连续的

    文章同步自个人博客:http://www.52cik.com/2016/07/10/consecutive-dates.html 这是群里一朋友问的问题,当时我说判断下 day 是否相邻即可,后来细想 ...

  7. Metatable让我从心认知了Lua(相知篇)

    自从在公司和Lua第一次相遇之后,我的IT生涯从此也开启了另一个新篇... 起初并没有和Lua产生相遇时的那种电石火花般的怦然心动...但... 说实话虽然我的心没有因此触动但至少也不排斥...因为公 ...

  8. Debian8修改启动默认运行级别

    Two things you need to know: 1) Systemd boots towards the target given by "default.target" ...

  9. redis性能测试tcp socket and unix domain

    UNIX Domain Socket IPC socket API原本是为网络通讯设计的,但后来在socket的框架上发展出一种IPC机制,就是UNIX Domain Socket.虽然网络socke ...

  10. js下拉框

    Js下拉框   http://sc.chinaz.com/tag_jiaoben/XiaLaKuang.html