activity中与taskAffinity,allowTaskReparenting,启动模式相关的问题
来源:互联网 发布:cctv视频下载软件 编辑:程序博客网 时间:2024/04/30 09:52
activityA和activityB在Application1中定义,activityC在Application2中定义
1)activityB的allowTaskReparenting=true。先运行Application2中的activityC,打开activityB,再运行Application1,会显示activityB,当再进入Application2会看不到activityB。
2)activityB的allowTaskReparenting=true,taskAffinity=”com.example.myapplication.activity1”,先运行Application2中的activityC,打开activityB,再运行Application1,显示activityA,再次打开activityB。
3)activityB的allowTaskReparenting=true,taskAffinity=”com.example.myapplication.activity1”,activityC的taskAffinity=”com.example.myapplication.activity1”。
4)activityA的allowTaskReparenting=true,taskAffinity=”com.example.myapplication.activity1”,activityC的taskAffinity=”com.example.myapplication.activity1”,先打开Application1,再打开Application2,显示activityA界面
结论1:一个activity默认的taskAffinity是包名,同一个栈中若有activity的allowTaskReparenting=true,则它位于本栈的栈顶位置(它在栈间转移,若转移到其他的栈,则本栈中看不到)。
5)activityB,activityC的taskAffinity=”com.example.myapplication.activity1”,先打开activityC,再在activityA以singleTask的方式打开ActivityB,一直back,先是ActivityB退出,再是activityC,最后是activityA。在以singleTask的方式打开activity,先检查是否有taskAffity同名的task存在,有的话则在这个task中创建activity,没有则创建task再创建activity。
结论2:launchMode=singleTask的activity启动时,先查看是否存在实例,若存在则将其上的activity弹出栈并调用onNewIntent,若没有则查看其taskaffinity的task是否存在,若存在,则在其task中创建activity,若不存在,则创建task再创建activity。只有back掉本栈的所有activity之后才能去back掉其他的栈中的activity。
6)ActivityB,activityC的taskAffinity=”com.example.myapplication.activity1”,先打开activityA,再以singleinstance的方式打开ActivityB,以singleinstance的方式打开ActivityC,再次从后台打开Application1,发现是activityA。
结论3:启动模式为singleInstance的activity创建时,先查看此activity有没有创建,若创建则调用onNewIntent,若没有则查看taskAffinity的task是否创建,其task若创建若其中有activity则销毁其activity(有singleInstancede的栈中只能有一个activity,若一个栈有singleInstance的activity,又有其他的activity要创建到本栈,则此singleInstance销毁),创建此activity;若没有创建task则创建task和此activity。launchMode=singleInstance的activity只能存在单独的一个栈,从这个activity加载其他的activity,则其他的activity存在其他的栈。
- activity中与taskAffinity,allowTaskReparenting,启动模式相关的问题
- Activity启动模式与FLAG及TaskAffinity
- Activity 的 taskAffinity, allowTaskReparenting, singleTask 属性的应用分析
- activity 的属性android:taskAffinity和android:allowTaskReparenting
- activity 的属性android:taskAffinity和android:allowTaskReparenting
- taskAffinity与allowTaskReparenting与launchMode之间的联系解读
- taskAffinity和allowTaskReparenting的实例
- Task、Back stack、taskAffinity、Activity启动模式之间的关系
- android的taskAffinity和allowTaskReparenting的用途
- Activity启动模式及android:taskAffinity属性
- Activity启动模式和FLAG、TASKAFFINITY
- Activity的LaunchMode与TaskAffinity
- Android中Activity四种启动模式和taskAffinity属性详解
- Android中Activity四种启动模式和taskAffinity属性详解
- Android中Activity四种启动模式和taskAffinity属性详解
- Android中Activity四种启动模式和taskAffinity属性详解
- Android中Activity四种启动模式和taskAffinity属性详解
- Android中Activity四种启动模式和taskAffinity属性详解
- TS中的pcr、dts、pts问题
- Linux BT下载(13)-缓存管理模块设计与实现
- ARCMap的基础应用
- UGUI之Grid Layout Group组件介绍
- ajax 由于出现错误 c00ce56e 而导致此项操作无法完成
- activity中与taskAffinity,allowTaskReparenting,启动模式相关的问题
- 6.2分鱼问题
- leetcode-42. Trapping Rain Water
- input type="submit" 和"button"有什么区别?
- 游戏大数据分析--游戏玩家
- 微信开发二 : 自定义菜单
- ViewPage中自定义标题栏(四)
- 红黑树-TreeMap
- 二叉排序查找树