Activity的启动模式
Activity 有四种启动模式
在AndroidManifest.xml中给Activity进行配置,配置代码:
android:launchModel=""
四种模式:standard、singleTop、singleTask、singleInstance
模式一
standard模式,没有在AndroidManifest.xml文件中配置,或是配置为android:launchModel="standard"
当启动一个Activity act的时候,不管Activity栈中是否已经有此act的实例,都会创建一个新的act的实例并置Activity栈的栈顶。
模式二
singleTop模式,在AndroidManifest.xml中配置为android:launchModel="singleTop"
当启动一个Activity act的时候,如果Activity栈的栈顶是act的实例,那么系统将不创建新的act实例,而是沿用栈顶的act实例,并且会执行act中的onNewIntent方法
如果Activity栈顶不是act的实例,则和standard模式处理方式一样。
模式三
singleTask模式,在AndroidManifest.xml中配置android:launchModel="singleTask"
当启动一个Activity act的时候,如果Activity栈中,不管是栈顶还是栈的其它位置,只要含有act的实例,系统则不会创建新的act实例,而是把act实例提置栈顶,act实例之上的其他Activity实例被移除栈即销毁它们。并且会执行act的onNewIntent方法。
如果Activity栈中不包含act实例,则和standard模式处理方式一样。
模式四
singleInstance模式,在AndroidManifest.xml中配置为android:launchModel="singleInstance"
当启动一个Activity act的时候,系统先查询所有其他的Activity栈中是否包含act实例,如果包含则不创建,直接使用现有的act实例,并且调用onNewIntent方法。如果不存在,则会创建一个act实例,并且把新创建的act实例置一个新的栈中,新栈理论上只会有act这一个Activity。
更多相关文章
- Android(安卓)Wifi模块分析(三)
- Android系统配置数据库注释(settings.db)
- android用户界面之按钮(Button)教程实例汇
- TabHost与RadioGroup结合完成的菜单【带效果图】5个Activity
- Android(安卓)Activity的启动
- Android(安卓)任务和回退堆栈---启动任务
- Android(安卓)UI开发第十七篇——Android(安卓)Fragment实例(Lis
- Android——Activity四种启动模式
- 修复Android(安卓)App在开机后入口类被启动两次的bug