android 任务栈的管理
来源:互联网 发布:阿里云cdn多少钱 编辑:程序博客网 时间:2024/04/30 00:07
在进行android开发时如果不对android任务栈进行充分的管理,则在app运行过程中将会产生各种莫名其妙的问题,下边来对android任务栈进行必要的解释:
1,一般app的入口点只有一个,就是activity属性为MAIN和LAUNCHER的activity,一个activity有4种启动方式,分别是standard,singleTop,singleTask,singleInstance。
(1)standard:可以实例化多次,可以存在不同的task中,可以重复堆叠;
(2)singleTop:在一个task栈中可以有多个实例,但是但栈顶有相同的activity时不会创建新实例,调用onNewIntent方法启动该activity;
(3)singleTask:app内调用该activity时,如果该activity已经没有实例化,将会在本app内的task中实例化;如果已经实例化,则会将此activity所在的task栈中其上的activity全部销毁,这样activity就自动调整到task栈栈顶了,然后调用onNewIntent方法。当其他app调用该activity时,如果没有实例化,则创建新的task栈并实例化后入栈,,如果已经实例化,同样是销毁此activity所在的task栈中其上的所有activity。总之就是:在一个task栈中,如果设置activity为singleTask属性时,启动此activity时不允许其他activity在其之上。
(4)singleInstance:独自在一个task栈中。
2,任务栈清理属性
(1)默认情况下,一个任务栈在后台常驻一段时间后,系统会将这个任务栈中除此任务栈中根activity外的所有activity清楚掉,所以当此任务栈再回到前台时就只会显示此任务栈中的根activity了。
(2)alwaysRetainTaskState属性:如果将根activity的这个属性设置为“true”,一旦其所在任务栈切换到后台,即便很长一段时间,系统也不会对其清理;
(3)ClearTaskOnLaunch属性:如果将根activity的这个属性设置为“true”,一旦其所在的任务栈切换到后台一段时间,系统就会对其管理,清除此task栈中除根activity之外的activity。
(4)finishTaskOnLaunch属性:如果将根activity的这个属性设置为“true”,一旦其所在的任务栈切换到后台一段时间,系统会直接清除掉这个task栈中的所有activity;
3,多任务栈设计
(1)activity属性中有一个taskaffinity属性,设置这个属性后,可以使几个activity共用一个task栈,进而调整整个app中activity的跳转流程。
- android 任务栈的管理
- android Activity的任务管理
- Android的任务栈
- 任务管理的历史
- ITRON的任务管理
- 就绪任务的管理
- 任务管理的技巧
- uCOS_II的任务管理
- FreeRTOS的任务管理
- Android 多任务管理和后台栈 --- 不止是activity的启动模式
- Android——带你从ADB命令行查看Task任务栈的管理方式
- Android 使用 DownloadManager 管理系统下载任务的方法
- Android 使用 DownloadManager 管理系统下载任务的方法
- Android 使用 DownloadManager 管理系统下载任务的方法
- Android使用DownloadManager管理系统下载任务的方法
- android的task任务栈
- android的task任务栈
- android的task任务栈
- zoj--1088--System Overload
- STL(五)-MAP
- Android Studio VS Eclipse (还在用Eclipse?你OUT了!)
- coco2d-x 基于视口的地图设计
- linux网络配置
- android 任务栈的管理
- Fedora 15 SPICE support
- 虚拟机VM10装Mac OS X 10.9.3
- 理解MySQL——复制(Replication)
- 杭电 1728 逃离迷宫(BFS)
- linux与window之间文件共享——smb 服务器
- snidel 2014春夏新品 纱质长半裙
- 【C语言复习(四)】指针基础
- LWR--local weighted regression