欢迎来到天天文库
浏览记录
ID:1989178
大小:104.77 KB
页数:4页
时间:2017-11-14
《activity生命周期》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Activity作为Android操作系统最主要的组件,它是实实在在与用户进行交互的界面。Activity的生命周期也和人的生命周期一样,由出生开始到死亡而结束,生命周期中充满着各个年龄阶段的标志,当然,在Activity的世界里,它有着自己的独特生命周期,以及属于自己的标志。Activity的三个基本状态1当activity在前台运行时(在activity当前任务的堆栈顶),为活动或者运行状态。这时activity会响应用户的操作。2当activity失去焦点但是对用户仍然可见时为paused暂停状态。此时,别的activity在他的上面,透明或者备有被全部覆盖。所以其
2、中一些暂停的activity也可以被显示。一个暂停的activity是处于活动状态的(他维护着所有的状态保存着信息,并且依然附着在窗口管理器)。3如果一个activity完全被另一个activity所掩盖那他会处于stop状态。但仍然保存着原来的状态和信息。然而,如果别的地方需要更多的内存而且这个activity仍一直处于隐藏状态,那么系统有可能会杀死他的进程。如果一个activity是暂停或者停止状态,系统可以清理他们占用的内存,或者调用finish()方法,或者直接结束他的进程。当他再次显示给用户时,会完全的重新运行并且加载以前所存储的信息。activity状态之间的
3、转换,是通过以前的受保护方法完成的voidonCreate(BundlesavedInstanceState)//创建一个ActivityvoidonStart()//启动一个ActivityvoidonRestart()//重新启动一个处于暂停状态的ActivityvoidonResume()//使Activity对用户可见voidonPause()//暂停一个处于可见状态的ActivityvoidonStop()//停止一个处于暂停状态的ActivityvoidonDestroy()//销毁一个Activity,释放内存或者可以用下面的简写图进行记忆可以看到,以上有3
4、个关键的生命周期循环: 1.一个activity完整的生命周期自第一次调用onCreate(Bundle)开始,直至调用onDestroy()为止。activity在onCreate()中设置所有"全局"状态以完成初始化,而在onDestroy()中释放所有系统资源。比如说,如果activity有一个线程在后台运行以从网络上下载数据,它会以onCreate()创建那个线程,而以onDestroy()销毁那个线程。 2.一个activity的可视生命周期自onStart()调用开始直到相应的onStop()调用。在此期间,用户可以在屏幕上看到此activity,尽管它
5、也许并不是位于前台或者正在与用户做交互。在这两个方法中,你可以管控用来向用户显示这个activity的资源。比如说,你可以在onStart()中注册一个BroadcastReceiver来监控会影响到你UI的改变,而在onStop()中来取消注册,这时用户是无法看到你的程序显示的内容的。onStart()和onStop()方法可以随着应用程序是否为用户可见而被多次调用。 3.一个activity的前台生命周期自onResume()调用起,至相应的onPause()调用为止。在此期间,activity位于前台最上面并与用户进行交互。activity会经常在暂停和恢复之间进
6、行状态转换──比如说当设备转入休眠状态或有新的activity启动时,将调用onPause()方法。当activity获得结果或者接收到新的intent的时候会调用onResume()方法。因此,在这两个方法中的代码应当是轻量级的。 要注意的是,onPause(),onStop(),onDestory()这3个方法是可以被系统直接kill的,当系统内存不足的时候。而平常从一个activity转向/回到另一个activity时,当新activity是fullscreen(弹出窗口,例如AlertDialog是不算的)的时候就会call前一个activity的onPause(
7、),然后callonStop(),而无论onPause或者onStop,都有可能被kill,所以一般在onPause就会执行savedata操作将所有持久性数据(比如用户的编辑结果)写入存储之中。
此文档下载收益归作者所有