taskAffinity 属性详解
一、本文目的
本篇文章的目的是为了 搞清楚,哪些情况下开启一个 Activity 会在新的 task 运行,哪些情况下会继续在原来的task 运行。
二、相关基础知识
知识点 1
每个 Activity 运行时都有一个其归属的 task栈,我们可以用 activity.getTaskId() 的方法得到当前 activity 的taskId。如果两个 activity 的 taskId 不同,则他们肯定不会属于同一个 task。
为了方便,我们在 Application 中注册生命周期回调,类似这样,我们打印出当前 activity 和其归属的 taskid。
public class MyApplication extends Application {
private static final String TAG_APP = MyApplication.class.getSimpleName();
@Override
public void onCreate() {
super.onCreate();
Log.d(TAG_APP,“MyApplication#onCreate”+Thread.currentThread().getName();
registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
//已过滤无用代码,只在onresume 读取相关数据
@Override
public void onActivityResumed(A
本文详细探讨了Android中taskAffinity属性的作用,解释了如何影响Activity的task归属。通过多个测试案例,展示了taskAffinity与FLAG_ACTIVITY_NEW_TASK、allowTaskReparenting等属性的交互,以及它们如何决定Activity在不同场景下的任务栈行为。
订阅专栏 解锁全文
38

被折叠的 条评论
为什么被折叠?



