Most visited

Recently visited

Added in API level 16

TaskStackBuilder

public class TaskStackBuilder
extends Object

java.lang.Object
   ↳ android.app.TaskStackBuilder


在Android 3.0及更高版本上构建用于跨任务导航的合成背堆栈的实用工具类。

在API级别11(Android 3.0 / Honeycomb)中,使用后退键推荐的应用导航约定已更改。 后退键的行为对于当前任务是本地的,并且不捕获跨越不同任务的导航。 可以通过导航或系统栏上的软件提供的“最近”键访问“最近”UI,从而完成任务之间的导航并轻松完成以前的任务。 在具有较旧硬件按钮配置的设备上,可以通过长按Home键来访问最近的UI。

当从一个任务栈跨越到另一个Android 3.0后,应用程序应该为新任务合成一个后退堆栈/历史记录,以便用户可以通过反复按下后退键导航出新任务并返回到启动器。 后退键不应该在任务堆栈中导航。

TaskStackBuilder提供了一种遵循关于跨任务导航的正确约定的方法。

About Navigation

For more detailed information about tasks, the back stack, and navigation design guidelines, please read Tasks and Back Stack from the developer guide and Navigation from the design guide.

Summary

Public methods

TaskStackBuilder addNextIntent(Intent nextIntent)

将新的Intent添加到任务堆栈。

TaskStackBuilder addNextIntentWithParentStack(Intent nextIntent)

为目标活动添加一个新的Intent和已解决的家长链,并将其添加到任务堆栈中。

TaskStackBuilder addParentStack(ComponentName sourceActivityName)

将应用程序清单中activity(或activity-alias)元素的 parentActivityName属性指定的活动父链添加到任务堆栈构建器。

TaskStackBuilder addParentStack(Activity sourceActivity)

将指定活动的 getParentActivityIntent()方法指定的活动父链和应用程序清单中每个后续活动(或活动别名)元素的 parentActivityName属性添加到任务堆栈构建器。

TaskStackBuilder addParentStack(Class<?> sourceActivityClass)

将应用程序清单中activity(或activity-alias)元素的 parentActivityName属性指定的活动父链添加到任务堆栈构建器。

static TaskStackBuilder create(Context context)

返回一个新的TaskStackBuilder,用于启动由一系列活动组成的新任务堆栈。

Intent editIntentAt(int index)

将指定的索引返回以进行修改。

int getIntentCount()
Intent[] getIntents()

返回包含添加到此构建器的意图的数组。

PendingIntent getPendingIntent(int requestCode, int flags)

获取 PendingIntent以启动迄今为止由此构建器构建的任务。

PendingIntent getPendingIntent(int requestCode, int flags, Bundle options)

获取 PendingIntent以启动迄今为止由此构建器构建的任务。

void startActivities()

启动由此构建器构建的任务堆栈。

void startActivities(Bundle options)

启动由此构建器构建的任务堆栈。

Inherited methods

From class java.lang.Object

Public methods

addNextIntent

Added in API level 16
TaskStackBuilder addNextIntent (Intent nextIntent)

将新的Intent添加到任务堆栈。 最近添加的Intent将调用最终任务堆栈顶部的Activity。

Parameters
nextIntent Intent: Intent for the next Activity in the synthesized task stack
Returns
TaskStackBuilder This TaskStackBuilder for method chaining

addNextIntentWithParentStack

Added in API level 16
TaskStackBuilder addNextIntentWithParentStack (Intent nextIntent)

为目标活动添加一个新的Intent和已解决的家长链,并将其添加到任务堆栈中。

这相当于使用已解析的nextIntent的ComponentName(如果可以解析)调用 addParentStack ,然后使用 addNextIntent调用addNextIntent

Parameters
nextIntent Intent: Intent for the topmost Activity in the synthesized task stack. Its chain of parents as specified in the manifest will be added.
Returns
TaskStackBuilder This TaskStackBuilder for method chaining.

addParentStack

Added in API level 16
TaskStackBuilder addParentStack (ComponentName sourceActivityName)

将应用程序清单中activity(或activity-alias)元素的 parentActivityName属性指定的活动父链添加到任务堆栈构建器。

Parameters
sourceActivityName ComponentName: Must specify an Activity component. All parents of this activity will be added
Returns
TaskStackBuilder This TaskStackBuilder for method chaining

addParentStack

Added in API level 16
TaskStackBuilder addParentStack (Activity sourceActivity)

将指定活动的 getParentActivityIntent()方法指定的活动父链和应用程序清单中每个后续活动(或活动别名)元素的 parentActivityName属性添加到任务堆栈构建器。

Parameters
sourceActivity Activity: All parents of this activity will be added
Returns
TaskStackBuilder This TaskStackBuilder for method chaining

addParentStack

Added in API level 16
TaskStackBuilder addParentStack (Class<?> sourceActivityClass)

将应用程序清单中activity(或activity-alias)元素的 parentActivityName属性指定的活动父链添加到任务堆栈构建器。

Parameters
sourceActivityClass Class: All parents of this activity will be added
Returns
TaskStackBuilder This TaskStackBuilder for method chaining

create

Added in API level 16
TaskStackBuilder create (Context context)

返回一个新的TaskStackBuilder,用于启动由一系列活动组成的新任务堆栈。

Parameters
context Context: The context that will launch the new task stack or generate a PendingIntent
Returns
TaskStackBuilder A new TaskStackBuilder

editIntentAt

Added in API level 16
Intent editIntentAt (int index)

将指定的索引返回以进行修改。 如果您需要修改之前添加的意向标志或附加项,例如addParentStack(Activity) ,则此功能addParentStack(Activity)

Parameters
index int: Index from 0-getIntentCount()
Returns
Intent the intent at position index

getIntentCount

Added in API level 16
int getIntentCount ()

Returns
int the number of intents added so far.

getIntents

Added in API level 16
Intent[] getIntents ()

返回包含添加到此构建器的意图的数组。 任务堆栈的根目录将显示为数组中的第一个项目,并且堆栈顶部的目标将显示为最后一个项目。

Returns
Intent[] An array containing the intents added to this builder.

getPendingIntent

Added in API level 16
PendingIntent getPendingIntent (int requestCode, 
                int flags)

获取 PendingIntent以启动迄今为止由此构建器构建的任务。

Parameters
requestCode int: Private request code for the sender
flags int: May be FLAG_ONE_SHOT, FLAG_NO_CREATE, FLAG_CANCEL_CURRENT, FLAG_UPDATE_CURRENT, or any of the flags supported by fillIn(Intent, int) to control which unspecified parts of the intent that can be supplied when the actual send happens.
Returns
PendingIntent The obtained PendingIntent

getPendingIntent

Added in API level 16
PendingIntent getPendingIntent (int requestCode, 
                int flags, 
                Bundle options)

获取 PendingIntent以启动迄今为止由此构建器构建的任务。

Parameters
requestCode int: Private request code for the sender
flags int: May be FLAG_ONE_SHOT, FLAG_NO_CREATE, FLAG_CANCEL_CURRENT, FLAG_UPDATE_CURRENT, or any of the flags supported by fillIn(Intent, int) to control which unspecified parts of the intent that can be supplied when the actual send happens.
options Bundle: Additional options for how the Activity should be started. See Context.startActivity(Intent, Bundle) for more details.
Returns
PendingIntent The obtained PendingIntent

startActivities

Added in API level 16
void startActivities ()

启动由此构建器构建的任务堆栈。

startActivities

Added in API level 16
void startActivities (Bundle options)

启动由此构建器构建的任务堆栈。

Parameters
options Bundle: Additional options for how the Activity should be started. See Context.startActivity(Intent, Bundle) for more details.

Hooray!