Activity的启动模式,任务栈的切换
来源:互联网 发布:js 数组值是否存在 编辑:程序博客网 时间:2024/06/03 18:14
Activity的启动模式,任务栈的切换
1.Activity有四种启动模式:
- 标准: standard 可以启动多个相同的Activity;
- 在当前Activity中可以通过点击按钮等方式,启动一个与当前Activity相同的Activity(不同应用不会放在同一个任务栈中);
- 单栈顶 singleTop 可以启动多个不同的Activity,但是在当前Activity处于栈顶时不能再次启动一个与当前Activity相同的Activity;
- singleTask 可以启动多个不同的Activity,但是如果当前栈中存在要启动的Activity,那么会将要启动的Activity之上的所有Activity全部出栈,将要启动的Activity放在栈顶
- singleInstance 单例 该Activity独占一个任务栈
- 标准: standard 可以启动多个相同的Activity;
2.程序锁中的Bug,如果启动手机卫士,长按Home键进入主页,当我们进入某个需要解锁的应用,输入正确的密码后,会直接进入到手机卫士的界面.
- 出现这种情况的原因就是任务栈的问题(如果我们进入手机卫士后点退出键退出手机卫士则不会出现类似情况);
- 当我们进入手机卫士时,由于是开启了一个新的应用,系统会分配一个任务栈给我们,我们在手机卫士中的各种操作的Activity都会进入该栈;如果我们没有退出手机卫士的应用,在点击进入某个需要解锁的应用时(B应用),系统会为B应用分配一个新的任务栈,然后将该任务栈放在手机卫士的任务栈之前;但是我们的监听服务监听到B应用需要输入密码,也启动了一个Activity放在了B应用之上,这时,监听服务启动的activity是属于手机卫士的应用的,在标准模式下,默认放在手机卫士的任务栈中,系统会将手机卫士的任务栈放在B应用任务栈之前;当我们输入密码后,输入密码的Activity关闭,会暴露最前面的任务栈的最上面的一个Activity,也就是我们手机卫士的界面.
要解决这个问题很简单,我们只需要在输入密码的Activity的配置上加一个启动模式为singleInstance的启动模式即可,配置信息如下:
1 0
- Activity的启动模式,任务栈的切换
- 任务栈 和 Activity的启动模式
- activity的启动模式和任务栈
- Android多任务切换与Activity启动模式SingleTask之间关系的分析
- Android多任务切换与Activity启动模式SingleTask之间关系的分析
- 任务栈的概念和activity的启动模式
- Activity的启动模式和任务栈的概念
- Activity的启动模式,任务栈Task,intent的Flags
- Activity的启动模式和任务栈(4)
- Android教程 -07 Activity的任务栈和启动模式
- 3.Activity的启动模式与任务栈学习笔记
- Activity的四种启动模式 任务栈
- 任务栈,Activity的启动模式和运用场景
- Activity的四种启动模式任务栈图解
- Activity的启动模式和任务栈解析
- Android Activity的任务栈和四大启动模式
- Activity启动模式&任务栈
- 任务栈&activity启动模式
- windows api的一些知识
- Android架构设计规范
- hiho 1228 : Mission Impossible 6,北京网络赛B题
- Android DrawableShape资源的用法,Shape属性,Shape开发
- Android中程序锁-不断监听
- Activity的启动模式,任务栈的切换
- Android系统源码framework SystemUI导入eclipse编译
- HTTP长连接与短连接
- AndroidEditText添加各种效果抖动-震动-内容变化自动查询
- [LeetCode]Sudoku Solver
- 带重复元素的子集
- Customizing Your Build With Gradle
- flume基础知识
- iOS-Core-Animation-Advanced-Techniques(五)