Activity初识之生命周期
![](https://img.haomeiwen.com/i6260745/0abdb100dfec9ae4.png)
Activity生命周期有七个节点,
- onCreate( ): activity启动调用的第1个方法,整个activity的生命周期只调用一次,一般做activity的各种初始化操作,与onDestory对应。
- onstart( ):activity启动调用的第2个方法,表示activity处于可见,但没有位于前台,用户无法操作。与onStop对应。
- onResume():activity启动调用的第3个方法,表示activity位于前台,用户可操作,与onpause对应。
- onPause():activity启动调用的第4个方法,表示activity不位于前台准备停止,但是可见的,比如popwindow,或dialog弹出屏幕,此时的activity是可见的,但无法操作,尽量少的做操作,这个方法调用后,新activity的onResume才能调用。
- onStop():activity启动调用的第5个方法,表示activity即将停止,已经不可见,可以做少量回收工作。
- onDestory():activity启动调用的第6个方法,表示activity已经被销毁,activity什么周期调用的最后一个方法同onCreate一样只调用一次。
- onRestart():activity启动调用的第7个方法,表示activity位于onStop状态的重新位于栈顶。
Activity生命周期的对应关系
oncreate与ondestroy 创造与毁灭
onstart与onstop 开始与暂停
onresume与ondestroy 可见于不可见
onrestart 孤独的重新开始
Activity的管理
activityTask:任务桟的管理模式 先进后出 ,压桟,出栈。位于当前任务桟,栈顶的activity。当点击返回键时,栈顶activity则被弹出,下方的activity升到栈顶,此为出栈,
压桟:位于当前任务桟,栈顶的activity A。当点击跳转另一个activity B,该A位置下移,B位于栈顶,此为压桟。
出栈:位于当前任务桟,栈顶的activity B。当点击返回键时,B被弹出,下方的A升到栈顶,此为出栈。
草图示意:
![](https://img.haomeiwen.com/i6260745/216501908e6f71fb.png)
Activity的启动方式(4种)
1.standard (标准模式,默认的模式) ,理解为任何跳转到该模式下的activity都会创建一个新的activity对象。
2.singleTop(栈顶复用) 当前activity已经位于栈顶,则跳转时不新建实例,直接复用。
3.singTask(栈内复用) 当前任务桟内已存在改activity,不创建实例,直接复用,使用出栈的方式,将他上方的activity弹出该任务桟。位于栈顶并显示。
4.singInstence (单例模式) 全局唯一实例,并且单独位于一个任务栈内。所以在没有使用singleinstence的默认情况下,应用内只会存在一个任务桟。
任务桟与启动方式的合理下才构成一个完整的activity管理方式。
我接触的Activity
1.在oncreate方法中进行各种初始化操作。参数,view,匿名监听事件等。
2.绝大多数时在oncreate中进行网络请求获取数据。
3.少数时候会在onstart中进行网络请求获取数据。需要频繁的刷新数据状态。
4.在ondestory中进行资源的释放。避免内存泄露的风险,比如一些db,custor,player等资源。还可以对使用到的大的变量资源进行回收,比如List变量,bitmap等。
5.在onActivityResult 方法中获取到跳转activity返回的数据。
网友评论