文档章节

Activity猫的一生-故事解说Activity生命周期

孤独的探索号
 孤独的探索号
发布于 2017/03/28 12:48
字数 987
阅读 181
收藏 0

大家好,关于Android中Activity的生命周期,网上大多数文章基本都是直接贴图、翻译API,比较笼统含糊不清。

 

我就用故事来说一说:

有个人叫User,TA养了几只猫,有只猫叫Activity。User见证了Activity猫的一生。

 

User想要一只小猫(想用一些功能),于是让一只母猫和一只公猫交配(触摸屏幕打开Activity界面),

之后经过母猫一段时间的孕育(Activity launched),小猫咪出生了(onCreate),取名叫Activity,放在笼子(App)里养。

 

主人把它抱出来,小猫咪Activity醒来(onStart)睁开眼(onResume),转转头、伸伸爪子、哭闹着要吃东西...(Activity running)。

然后主人喂食、和它玩(用户在Activity上的操作)...

User觉得和Activity一起的时间差不多够了,就(打开新的Activity)把它关进笼子,和其它猫一边玩去了(Another activity comes into the foreground)。

Activity就开始闭目养神(onPause)...

过了一会儿,主人打开笼子,呼唤它的名字(User returns to the activity),它听到后马上睁开眼(onResume)跑过去和主人玩耍(Activity running)...

后来主人又把它关起来然后走了,Activity继续闭目养神(onPause)...

再后来主人把灯关了(The activity is no longer visible),Activity感觉天黑了就睡了(onStop)...

 

不知道什么时候,主人又回来了,一边敲笼子、一边叫着Activity的名字(User navigates to the activity),

Activity被从美梦中拉回了现实世界,恢复了状态(onRestart),然后醒来(onStart)睁开眼(onResume)...

就这样不知不觉过了很久...

 

有一次主人(按下主页、多任务或电源按钮)出远门了,好久没回来,家里的食物不够,很快就被大家吃光了(Apps with higher priority need memory)。

由于Activity很弱小(优先级低)、还被关在笼子里(没有绑定前台Service),所以吃到的食物很少。

几顿饥渴后大家都饿昏了,纷纷进入休克状态(App process killed)。

主人回来时看到可怜的Activity一动不动地躺着,怎么都叫不醒,就赶紧送去兽医院抢救(User navigates to the activity)。

医生给它输了血和营养等(系统重新分给内存),经过一段时间后Activity终于复活了,它感觉好像重新从妈妈的肚子里出来一样(onCreate)。

它醒来(onStart)睁开眼(onResume),和主人打打闹闹(Activity running),过了一会儿主人就带着它回家了...

 

俗话说,大难不死必有后福,之后主人确实对Activity照顾有加。

可是天有不测风云,有一天Activity被一个坏蛋弄死了(The activity is destroyed by the system)。

Activity死了(onDestroy),User很伤心地把它埋了(Activity shut down)...

 

User很留恋和Activity在一起的时光,心有不甘,于是重新要了一只小猫,名字仍然叫Activity...

Activity一天天长大,主人对它非常宠爱,但它却越来越叛逆。

终于有一天,主人受够了,觉得Activity实在太可恶(或者没有利用价值)就(点击返回按钮)把它抛弃了(The activity is finished)...

Activity不适应外部恶劣的环境很快就死了(onDestroy),大自然用风和泥土把它埋葬(Activity shut down)...

 

这就是Activity猫的一生。

 

ZBLibrary提供了isAlive()、isRunning()等判断Activity、Fragment生命周期状态的方法;

以及runUiThread(Runnable runnable)方法来避免直接runOnUiThread(Runnable runnable)导致在onDestroy后运行崩溃;

还有线程管理类ThreadManager,BaseActivity、BaseFragment内可以runThread(String tag, Runnable runnable)很方便地新开线程,

onDestroy后自动释放,不用担心直接new Thread(runnable).start()在onDestroy后还在运行浪费资源,甚至使用被回收的变量导致崩溃等问题。

 

ZBLibrary-Android快速开发框架

 

下载试用

ZBLibraryDemoApp.apk

下载地址(觉得不错就Star支持下吧^_^)

https://github.com/TommyLemon/Android-ZBLibrary

 

© 著作权归作者所有

孤独的探索号

孤独的探索号

粉丝 134
博文 23
码字总数 29911
作品 4
深圳
私信 提问
加载中

评论(1)

洋洋007号
洋洋007号
666666
Android context(Application/Activity)与内存泄露

android中的context可以做很多操作,但是最主要的功能是加载和访问资源。 在android中有两种context,一种是 application context,一种是activity context,通常我们在各种类和方法间传递的...

晨曦之光
2012/03/01
177
0
android中context及全局变量小析

今天在研究context的时候,对application和activity context有了一定的了解,下面是从网上复制过来的资料, Application context和Activity context的区别: 这是两种不同的context,也是最常...

迷途d书童
2012/03/30
1K
0
Android context(Application/Activity)与内存泄露

android中的context可以做很多操作,但是最主要的功能是加载和访问资源。 在android中有两种context,一种是 application context,一种是activity context,通常我们在各种类和方法间传递的...

长平狐
2013/01/06
42
0
Android context(Application/Activity)与内存泄露

android中的context可以做很多操作,但是最主要的功能是加载和访问资源。 在android中有两种context,一种是 application context,一种是activity context,通常我们在各种类和方法间传递的...

鉴客
2012/03/09
153
0
Android context(Application/Activity)与内存泄露

android中的context可以做很多操作,但是最主要的功能是加载和访问资源。 在android中有两种context,一种是 application context,一种是activity context,通常我们在各种类和方法间传递的...

鉴客
2011/12/03
3.6K
4

没有更多内容

加载失败,请刷新页面

加载更多

64.监控平台介绍 安装zabbix 忘记admin密码

19.1 Linux监控平台介绍 19.2 zabbix监控介绍 19.3/19.4/19.6 安装zabbix 19.5 忘记Admin密码如何做 19.1 Linux监控平台介绍: 常见开源监控软件 ~1.cacti、nagios、zabbix、smokeping、ope...

oschina130111
昨天
64
0
当餐饮遇上大数据,嗯真香!

之前去开了一场会,主题是「餐饮领袖新零售峰会」。认真听完了餐饮前辈和新秀们的分享,觉得获益匪浅,把脑子里的核心纪要整理了一下,今天和大家做一个简单的分享,欢迎感兴趣的小伙伴一起交...

数澜科技
昨天
26
0
DNS-over-HTTPS 的下一代是 DNS ON BLOCKCHAIN

本文作者:PETER LAI ,是 Diode 的区块链工程师。在进入软件开发领域之前,他主要是在做工商管理相关工作。Peter Lai 也是一位活跃的开源贡献者。目前,他正在与 Diode 团队一起开发基于区块...

红薯
昨天
43
0
CC攻击带来的危害我们该如何防御?

随着网络的发展带给我们很多的便利,但是同时也带给我们一些网站安全问题,网络攻击就是常见的网站安全问题。其中作为站长最常见的就是CC攻击,CC攻击是网络攻击方式的一种,是一种比较常见的...

云漫网络Ruan
昨天
27
0
实验分析性专业硕士提纲撰写要点

为什么您需要研究论文的提纲? 首先当您进行研究时,您需要聚集许多信息和想法,研究论文提纲可以较好地组织你的想法, 了解您研究资料的流畅度和程度。确保你写作时不会错过任何重要资料以此...

论文辅导员
昨天
44
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部