从TaskStackBuilder
API来看,这三种方法的区别是什么?
public TaskStackBuilder addParentStack (Activity sourceActivity)
public TaskStackBuilder addParentStack (ComponentName sourceActivityName)
。
public TaskStackBuilder addParentStack (Class<?> sourceActivityClass)
所有这些方法都添加了父活动那么会有什么区别呢?
答案 0 :(得分:0)
为方便起见,方法TaskStackBuilder#addParentStack()
已超载。
当您感兴趣构建的父堆栈属于当前Activity
或属于当前Fragment
本身的活动时,您将使用
TaskStackBuilder#addParentStack(this); // OR
TaskStackBuilder#addParentStack(getActivity());
如果源活动类与构建堆栈的类活动类不同,您将使用显式获取活动类的版本
TaskStackBuilder#addParentStack(DetailsActivity.class);
最后,如果编译时未知的活动需要父堆栈,即源活动组件仅在运行时已知,则使用
// configured at runtime
ComponentName cName = new ComponentName("some.other.app", "some.other.app.Activity");
// build the parent stack for the dynamic activity component
tsb.addParentStack(cName);
应用程序包和活动类名称显然不是静态字符串。我只用它们作为例子。