欢迎来到天天文库
浏览记录
ID:29418477
大小:148.50 KB
页数:7页
时间:2018-12-19
《android中activity的生命周期》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、.说来惭愧,虽然已经做了一年多的android开发,但是最近被人问起activity的生命周期的时候,却感觉自己并不能很自信很确定的回答对方的问题,对activity的生命周期的理解还不透彻啊。既然发现了问题,那咱就得解决问题,不就个生命周期,能有多复杂。首先看看androiddevelopers网上的activity的生命周期图:页.activity启动的时候:onCreate--->onStart--->onResume这个过程不用多说,大家都知道。这里主要讲讲:何时onPause,何时onStop,何时onDestory;页.以及恢复的时候,何时onRestart,何时onResu
2、me。为了方便说明这里把当前activity称为MainActivity,其他的activity称为SecondActivity、ThirdActivity等等。通过上图的我们可以看出activity从running状态跳转到onPause状态的原因是:Anotheractivitycomesintotheforeground.也就是说有另外一个actvity被启动并运行了,比如说MainActivity通过startActivity启动了SecondActivity,那么SecondActivity就在ui视图的最顶层了,而MainActivity不再是最顶层的activity了,此时
3、就会onPause了,此时我们依稀还能看到MainActivity,只是MainActivity已经站在他人之后了。而当MainActivity完全被SecondActivity挡住,完全看不见的时候,此时MainActivity就会onStop了。我们看看上图从onPause到onStop的原因是:theactivityisnolongervisiable.也就是说此时MainActivity完全不可见了,从这里我们可以猜测当按下home键的时候,当前activity就会处于onStop的状态。从actvitiy的生命周期图中,我们可以看出activity是可以停留在onPause和o
4、nStop在这两个状态上的,因为可以相应的恢复。那么何时停留在onPause,何时停留在onStop呢?页.下图的MainActivity就是处于onPause状态:因为这里的secondactvity是dialog样式:也就验证了当MainActivity不再在最顶端,但仍然可见的时候,MainActivity就处于onPause状态,此时如果退出(back键)secondactivity,那么MainActivity就会
5、onResume。页.下图的MainActivity就是处于onStop状态(注意,这里的thirdactivity是在MainActivity中通过startActivity启动的):因为此时MainActivity已经完完全全被Thridactvity挡住了,完全不可见了,所以MainActivity处于onStop状态,如果此时退出Thridactivity(back键),那么MainActivity就会onRestart().何时onDestory呢?当在MainActivity中按back键,退出时,最终就会走到onDestory,或者在代码中调用finish()的时候也会走到
6、onDestroy这一步。页.对于activity生命周期图的左侧部分:当MainActivity处于onPause和onStop状态时,当更高优先级的apps需要内存,而此时系统内存不够了,那么android系统就会将MainActivity所在的进程给杀了以释放资源。当然被杀了之后,想重生,那必须得从头来过:onCreate--->onStart()--->onResume().页.摘自http://www.cnblogs.com/hibraincol/archive/2012/03/06/2382120.html页
此文档下载收益归作者所有