onCreate与onStart区别,onStart与onResume区别
http://www.cnblogs.com/kofi1122/archive/2011/04/10/2011772.html
Activity生命周期之我见
关于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,就说这么多……
onCreate与onStart区别,onStart与onResume区别相关推荐
- HashMap底层实现原理/HashMap与HashTable区别/HashMap与HashSet区别(转)
HashMap底层实现原理/HashMap与HashTable区别/HashMap与HashSet区别 文章来源:http://www.cnblogs.com/beatIteWeNerverGiveU ...
- Win11和Win10有什么区别 Win11和Win10区别对比
Win11是微软全新一代操作系统,在界面和功能上和Win10相比还是有不少区别的,如果你还在犹豫要不要升级Win11的话,那么不妨来看看Win11和Win10之间有哪些区别吧. 1. 开始菜单:简单的 ...
- 冲突问题和核心对象和原生js 和 jquer的区别的两个区别(固定格式的区别和入口函数的区别)
jQuery的冲突问题 $有可能其他框架也用 导致两个框架的符号相同出现问题冲突 第一种解决: 释放$的使用权 jQuery.noConflict();//释放$的使用权语句 释放操作必须在编写其他j ...
- jQuery的datatable的destroy属性,和$(#test).dataTable().fnDestroy();区别,两者的区别
jQuery的datatable的destroy属性,和$("#test").dataTable().fnDestroy();区别,两者的区别. 1 destroy属性是,销毁实例 ...
- 线程通信和进程通信区别(线程进程区别)
前言: 腾讯笔试中多道选择题考到这个问题,这里总结一下.学习Java的童鞋可能对于线程的理解要比学php好很多.本文参考于线程通信与进程通信的区别 . 进程和线程的区别: 对于进程来说,子进程是父进程 ...
- NOR flash和NAND flash区别,RAM 和ROM区别
NOR flash和NAND flash区别,RAM 和ROM区别 ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory ...
- ML:机器学习模型可解释性之explainability和interpretability区别的简介、区别解读、案例理解之详细攻略
ML:机器学习模型可解释性之explainability和interpretability区别的简介.区别解读.案例理解之详细攻略 目录 机器学习模型可解释性之explainability和inter ...
- Button的custom、system区别 selected、highlighted区别;
custom.system区别 selected.highlighted区别: (1)UIControlStateHighlighted 多用于初始化 button 时 例如:设置它被按下时的高亮图片 ...
- Elasticsearch教程(28) text和keyword区别 term和match区别 ik中文分词器使用
text和keyword区别 term和match区别 ik中文分词器使用 一.前言 二.之前相关的博客 三.造点测试数据 1. 创建一个index 2. 插入测试数据 四.做一份试卷 第1题:tit ...
最新文章
- linux c 执行shell命令并获取返回结果
- 也议GetLastKnownLocation!!(独家理解)
- 查看php 相关信息
- class转java_java动态代理实现与原理详细分析
- 全球最大IXP为何选择与华为开展数据中心互联合作?
- 垃圾软件!动不动就扣费!| 今日最佳
- 请求接口时使用时间戳
- 【IDEA】IDEA中使用git将项目上传到码云上
- 网站安全之XSS漏洞攻击以及防范措施
- HTTP协议工作原理(与HTTPS的区别)
- python 变量赋值变成元组
- Power Query 系列 (04) - 从 Web 导入数据
- JAVA之父,詹姆斯·高斯林传奇人生
- 共轭先验分布及其应用
- Windows环境下使用UHD PythonAPI开发USRP X310
- 计算机系统遗传学,中国象棋计算机博弈系统评估函数自适应遗传算法[转]
- Servlet内存马
- 《巴黎评论》启示录连载之一村上春树
- 开源至上:面试官轮轮虐你?深入剖析
- 计算机网络CPT简单应用