android 加入FLAG_ACTIVITY_NEW_TASK
来源:互联网 发布:ubuntu安装谷歌浏览器 编辑:程序博客网 时间:2024/06/05 13:27
startActivity时报错 from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag
原因是Context中有一个startActivity方法,Activity继承自Context,重载了startActivity方法,如果使用Activity的startActivity方法,不会有任何限制;如果使用Context的startActivity方法,就需要开启一个新的task,遇到上面的异常,都是因为使用了Context的startActivity方法,并且没有添加flag--FLAG_ACTIVITY_NEW_TASK。解决方法是在跳转之前添加一个flag,Intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)。
Activity A launchMode="singleTask"
Activity B launchMode="singleTask"
由A启动B,此时通过Context启动了一个新的Activity C(添加了FLAG_ACTIVITY_NEW_TASK),此时C肯定是位于栈顶,当C调用finish()后,预期应该回到B,可是此时却直接回到了A,是因为通过Context启动时添加了FLAG_ACTIVITY_NEW_TASK导致的。如果此时使用Activity启动C,就不会出现这样的问题,C finish后会回到B。
如果要达到预期效果,就需要用到android:taskAffinity属性,在AndroidManifest中将C的taskAffinity配置成和B的taskAffinity一样的值,这样就会把C压入到B所在的栈中,这样就和不加FLAG_ACTIVITY_NEW_TASK标记的效果一致,既解决了错误,又能达到预期的效果。
0 0
- android 加入FLAG_ACTIVITY_NEW_TASK
- android 加入FLAG_ACTIVITY_NEW_TASK
- FLAG_ACTIVITY_NEW_TASK
- FLAG_ACTIVITY_NEW_TASK
- Intent.FLAG_ACTIVITY_NEW_TASK和android:taskAffinity
- 【Android】关于FLAG_ACTIVITY_NEW_TASK 和 taskAffinity
- Android下Affinities和Task(FLAG_ACTIVITY_NEW_TASK)
- android intent.FLAG_ACTIVITY_NEW_TASK 不新建tast
- Android startActivity出现FLAG_ACTIVITY_NEW_TASK报错
- Android Intent.FLAG_ACTIVITY_NEW_TASK的个人理解
- Android SingleTask 和 SingleInstance 的理解 以及 FLAG_ACTIVITY_NEW_TASK
- android-activity之默认启动模式和FLAG_ACTIVITY_NEW_TASK
- Android初学习 - FLAG_ACTIVITY_NEW_TASK和singleTask一起使用
- android109--FLAG_ACTIVITY_NEW_TASK
- Intent.FLAG_ACTIVITY_NEW_TASK
- Android 学习历程之二 如何在一个Service中调用Activity(Intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK))
- android中activity设置标志FLAG_ACTIVITY_NEW_TASK,FLAG_ACTIVITY_CLEAR_TOP详解和taskAffinity引发的有趣问题
- Android应用程序模块详解(任务、启动模式、进程和线程、FLAG_ACTIVITY_NEW_TASK)
- jsf中enetity类没有定义或者识别的报错
- Basis-Variance Decomposition
- ServiceManager远程代理的获取
- XCode7的使用与iOS 9适配的小结
- 第一次月赛 Simpsons’ Hidden Talents
- android 加入FLAG_ACTIVITY_NEW_TASK
- 0xc000000f 由于系统注册表文件丢失或损坏,因此Windows无法加载
- 第10回这Service是怎么个思想感情啊?
- CentOS6.5安装Scala2.10.3
- 一篇文章了解什么是增长黑客
- 用Python和Pygame写游戏
- copy, 仅供自己参考: arm-linux-gcc ELDK使用 cross compiler
- 如果我来应聘产品经理岗位(一)
- 8.2.1.9 LEFT JOIN and RIGHT JOIN Optimization 左关联和又关联