设置FLAG_ACTIVITY_NEW_TASK导致Activity打开两次
2016-05-17 23:55
295 查看
在Service中启动Activity需要进行如下设置:
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
但是遇到过目标Activity会打开两次的问题,解决方案为:
在目标Activity的配置信息中设置
android:taskAffinity="aaa.aaa"android:allowTaskReparenting="true"
"aaa.aaa"为包名,只要不跟项目包名一致就好。
原因:如果目标Activity(C)在Manifest.xml中的声明中添加了Taskaffinity,并且和Service(B)所在栈的affinity不同,系统首先会查找有没有和C的栈 affinity相同的栈存在,如有存则将C压入那个栈,无则会新建一个属于C的affinity的栈将其压入。如果C的Task affinity默认没有设置,或者和B所在的栈的affinity相同,和不加FLAG_ACTIVITY_NEW_TASK标记效果是一样的参考知乎用户回答,源地址:http://www.zhihu.com/question/20113407
相关文章推荐
- 智能聊天机器人之图灵机器人
- DA1458x使用之第二篇——PWM
- 1004 zxa and xor
- App 研发录、架构设计、Crash分析和竞品技术分析------读书笔记(第一章)
- Linux中搜索命令简记
- M着色
- SimpleAdapter
- CentOS 6.7 配置 yum 安装 nginx
- TCP/IP 之 大明王朝邮差
- elbatummI-D2yreuQmuSegnaR.304
- bzoj2001【HNOI2010】City 城市建设
- 工具篇《总》
- 结构体的用法
- Leetcode 73. Set Matrix Zeroes 矩阵置零 解题报告
- C#添加WebService服务实现天气预报(查询)
- 2732: [HNOI2012]射箭
- 【使用Postman测试web接口】管理http请求
- Fedora 系统配置 rtl8723b 网卡驱动
- Java Map集合知多少?
- 使用 MNIST 图像识别数据集