源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

故事讲解Activity生命周期(猫的一生)

  • 时间:2021-06-06 16:40 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:故事讲解Activity生命周期(猫的一生)
大家好,关于Android中Activity的生命周期,网上大多数文章基本都是直接贴图、翻译API,比较笼统含糊不清。 [img]http://files.jb51.net/file_images/article/201703/2017032814521238.png[/img] 我就用故事来说一说: 有个人叫User,TA养了几只猫,有只猫叫Activity。User见证了Activity猫的一生。 [img]http://files.jb51.net/file_images/article/201703/2017032814521239.jpg[/img] 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后还在运行浪费资源,甚至使用被回收的变量导致崩溃等问题。 [b]ZBLibrary-Android快速开发框架[/b] [img]http://files.jb51.net/file_images/article/201703/2017032814521240.jpg[/img] [b]下载试用[/b] [url=http://xiazai.jb51.net/201703/yuanma/ZBLibraryDemoApp_jb51.rar]ZBLibraryDemoApp.apk[/url] [b]下载地址[/b](觉得不错就Star支持下吧^_^) ​[url=https://github.com/TommyLemon/Android-ZBLibrary]https://github.com/TommyLemon/Android-ZBLibrary[/url] 以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持编程素材网!
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部