关于activity生命周期很简单,但总是不能记得很清楚,发现一篇博文记忆方式不错。

转自:http://www.cnblogs.com/kofi1122/archive/2011/04/10/2011772.html

关于Activity生命周期的文章很多,而且大部分也说得很详细,所以作为关于这方面的内容我本来不想多说,但是大家可能跟我之前一样,在看这方面的内容的时候都能很容易地看懂,但是过几天又忘了,或者在用的程序中跳转较多的情况下容易混淆。

这是因为没有真正的理解,或者是没有很好的方法来记忆,所以在这里我就说一下我对Activity生命周期的一些记忆的方式,希望对大家能够有所帮助。

Activity生命周期的基本内容我就不多说了,网上一搜一大把,官方文档也说得很详细。总之,我们知道Activity从创建到销毁有多种状态,从一种状态到另一种状态时会激发相应的回调方法,这些回调方法包括:

onCreate 、onStart 、onResume 、onPause 、onStop 、onDestroy 、onRestart

下面这张图就是我的记忆的方式:

不难看出,其实这些方法都是两两对应的,onCreate创建与onDestroy销毁;onStart可见与onStop不可见;onResume可编辑(即焦点)与onPause;这6个方法是相对应的,那么就只剩下一个onRestart方法了,这个方法在什么时候调用呢?答案就是:在Activity被onStop后,但是没有被onDestroy,在再次启动此Activity时就调用onRestart(而不再调用onCreate)方法;如果被onDestroy了,则是调用onCreate方法。

这样大家就应该能够很容易的记住这些方法了。下面再通过一个比喻来看两个Activity的切换过程。

我们把Activity比作一本书,我们要看书,首先从书架上取出书(onCreate),然后放到桌上(onStart),接着打开书(onResume),这样我们就可以看书并可以在书本上写字了。

如果这时候我们要启动另一个Activity,也就是要看另一本书,首先我们放下手中的笔或者说合上书(onPause),然后从书架上拿下另一本书(书2:onCreate),然后把书本2放到桌上并打开(书2:onStart、onResume)。

如果书本1被书本2完全盖住了,即不可见了,就调用书本1的onStop;而如果书本2较小,没有完全盖住书本1,则不会调用。

我们还可以把书本1放回书架上,即onDestroy。

另外,还有一点要注意,Activity在处于onPause、onStop、onDestroy状态下,系统都可以销毁该Activity所在进程,所以我们在处理一些要保存的数据时,必须在onPause方法中进行,因为onStop和onDestroy方法不一定会被调用。

OK,就说这么多……

Activity生命周期记忆方法(转)相关推荐

  1. Activity生命周期回调方法

    文章目录 Activity生命周期 一.Activity生命周期回调方法 1.onCreate() 2.onStart()回调方法 3.onResume()回调方法 4.onPause()回调方法 5 ...

  2. 安卓学习笔记06:Activity生命周期与启动模式

    文章目录 零.学习目标 一.Activity生命周期 1.了解Activity生命周期 2.Activity生命周期简化图 (1)Activity存在与否 (2)Activity可见与否 (3)Act ...

  3. Android全面解析之Activity生命周期

    前言 很高兴遇见你~ 欢迎阅读我的文章. 关于Activity生命周期的文章,网络上真的很多,有很多的博客也都讲得相当不错,可见Activity的重要性是非常高的.事实上,我猜测每个android开发 ...

  4. Activity与调用线(三):Activity生命周期源码解析

    前言 很高兴遇见你~ 欢迎阅读我的文章. 关于Activity生命周期的文章,网络上真的很多,有很多的博客也都讲得相当不错,可见Activity的重要性是非常高的.事实上,我猜测每个android开发 ...

  5. View的生命周期方法和Activity生命周期方法关系

    View 是在Activity 中使用到的,所以在自定义View的时候,我们需要了解Activity 生命周期方法和View的生命周期方法调用先后顺序.  见如下图 (1) 在Activity onC ...

  6. android的应用入口点函数,android 没有main函数,怎么找到程序执行入口呢?以及activity主要生命周期的方法说明...

    android应用程序,由一到多个Activity组成.每个Activity没有很紧密的联系,因为我们可以在自己的程序中调用其它Activity,特别是调用自己的代码之外生成的Activity,比如a ...

  7. 1.简述一个Activity跳转到另一个Activity时,两个Activity生命周期方法的执行过程。2.编写一个程序,要求在第一个界面中输入两个数字,在第二个界面显示第一个界面两个数字的和。

    1.简述一个Activity跳转到另一个Activity时,两个Activity生命周期方法的执行过程. 首先,我创建了一个MainActivity和SecondActivity两个Activity. ...

  8. Activity生命周期(五大状态七大方法)

    Activity生命周期是指一个Activity从创建到销毁的全过程.下图是Activity的生命周期模型. 一.生命周期五种状态 (1)启动状态:Activity的启动状态很短暂,当Activity ...

  9. android activity生命周期(一)onCreate和onDestroy方法

    首先我们来说一下什么是生命周期 平时我们在开发软件的时候软件就有生命周期,同样 很多的事物都有自己的生命周期 一般来说 生命是不由自己的主观意识控制的. 举个例子 :人的生命周期:从出生-->到 ...

最新文章

  1. Spring-学习笔记09【JdbcTemplate的基本使用】
  2. Servlet - cookie、session、servletContext概述
  3. redis session 超时时间_Shiro性能优化:解决Session频繁读写问题
  4. 国产自主可控的MBSE解决方案和全数字仿真平台(SkyEye)
  5. python找到文件夹下指定文件_python实现在目录中查找指定文件的方法
  6. 拼多多、微博等在新一轮经济变化中将做出更大贡献
  7. graphpad多条不同的曲线_应用Graphpad Prism制作多组ROC曲线图
  8. prolog初学语法结构
  9. 惠普HP Deskjet D1530 打印机驱动
  10. html设置一个搜索引擎,零基础打造一款属于自己的网页搜索引擎
  11. ArcCatalog导出数据库中shapefile
  12. java云笔记_java版云笔记(一)
  13. 使用kubeadm在CentOS上搭建Kubernetes1.14.3集群
  14. 我们上市了-taofen8-返利界最美的云彩
  15. meta标签中的name属性和http-equiv属性解析
  16. 数组元素两两组合 php,js多个数组元素两两组合三三组合
  17. adobe imageready怎么扣图
  18. Linux 上安装iib 9.0
  19. spring使用@Primary注解
  20. 力扣 560. 和为 K 的子数组

热门文章

  1. python培训zyqit.com
  2. ActiveMQ做消息队列拦截功能
  3. 【保研加分项】本年度最全大学生竞赛汇总
  4. PLC中ST编程——单按钮控制多台电机顺序启动
  5. PDF压缩(全图片PDF压缩)
  6. Antd的Upload+fetch+FormData上传Excel文件请求方式?
  7. Qt使用QSettings读写ini文件
  8. c语言程序设计俄罗斯方块PPT,C语言实现俄罗斯方块.ppt
  9. 小红书kol种草怎么做?达人种草笔记需要注意什么
  10. Error:Execution failed for task ':app:transformClassesWithDexForDebug'. com.android.build.api.tran