TaskStackbuilder API' s

时间:2015-01-20 02:18:53

标签: android

TaskStackBuilder API来看,这三种方法的区别是什么?

  1. public TaskStackBuilder addParentStack (Activity sourceActivity)

  2. public TaskStackBuilder addParentStack (ComponentName sourceActivityName)

  3. public TaskStackBuilder addParentStack (Class<?> sourceActivityClass)
  4. 所有这些方法都添加了父活动那么会有什么区别呢?

1 个答案:

答案 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);

应用程序包和活动类名称显然不是静态字符串。我只用它们作为例子。