Most visited

Recently visited

TaskStackBuilder

public final class TaskStackBuilder
extends Object implements Iterable<Intent>

java.lang.Object
   ↳ android.support.v4.app.TaskStackBuilder


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

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

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

TaskStackBuilder提供了一种向后兼容的方式来遵守关于设备版本的平台上的跨任务导航的正确约定。 在运行Android 3.0或更高版本的设备上,调用startActivities()方法或发送由PendingIntent生成的getPendingIntent(int, int)将按照规定构建合成背堆栈。 在运行较旧版本平台的设备上,这些相同的调用将调用所提供堆栈中的最顶层活动,忽略合成堆栈的其余部分,并允许后退键导航回前一个任务。

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

Nested classes

interface TaskStackBuilder.SupportParentable

 

Public methods

TaskStackBuilder addNextIntent(Intent nextIntent)

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

TaskStackBuilder addNextIntentWithParentStack(Intent nextIntent)

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

TaskStackBuilder addParentStack(ComponentName sourceActivityName)

将manifest <meta-data>元素指定的活动父链添加到任务堆栈构建器。

TaskStackBuilder addParentStack(Activity sourceActivity)

将manifest <meta-data>元素指定的活动父链添加到任务堆栈构建器。

TaskStackBuilder addParentStack(Class<?> sourceActivityClass)

将manifest <meta-data>元素指定的活动父链添加到任务堆栈构建器。

static TaskStackBuilder create(Context context)

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

Intent editIntentAt(int index)

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

static TaskStackBuilder from(Context context)

此方法已弃用。 改为使用create(Context)

Intent getIntent(int index)

此方法已弃用。 将其更名为editIntentAt以更好地反映预期用法

int getIntentCount()
Intent[] getIntents()

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

PendingIntent getPendingIntent(int requestCode, int flags)

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

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

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

Iterator<Intent> iterator()

此方法已弃用。 改用editIntentAt

void startActivities()

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

void startActivities(Bundle options)

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

Inherited methods

From class java.lang.Object
From interface java.lang.Iterable

Public methods

addNextIntent

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

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

TaskStackBuilder addParentStack (ComponentName sourceActivityName)

将manifest <meta-data>元素指定的活动父链添加到任务堆栈构建器。

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

addParentStack

TaskStackBuilder addParentStack (Activity sourceActivity)

将manifest <meta-data>元素指定的活动父链添加到任务堆栈构建器。

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

addParentStack

TaskStackBuilder addParentStack (Class<?> sourceActivityClass)

将manifest <meta-data>元素指定的活动父链添加到任务堆栈构建器。

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

create

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

Intent editIntentAt (int index)

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

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

from

TaskStackBuilder from (Context context)

此方法已弃用。
改为使用create(Context)

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

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

getIntent

Intent getIntent (int index)

此方法已弃用。
将其更名为editIntentAt以更好地反映预期用法

获取指定索引的意图。 如果您需要修改之前添加的意向标志或附加项,例如addParentStack(Activity) ,则此功能addParentStack(Activity)

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

getIntentCount

int getIntentCount ()

Returns
int the number of intents added so far.

getIntents

Intent[] getIntents ()

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

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

getPendingIntent

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

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 {@link android.content.Context#startActivity(Intent, Bundle)
Returns
PendingIntent The obtained PendingIntent

iterator

Iterator<Intent> iterator ()

此方法已弃用。
改用editIntentAt

返回类型为 T元素的迭代器。

Returns
Iterator<Intent> an Iterator.

startActivities

void startActivities ()

启动由此构建器构建的任务堆栈。 用于获取此构建器的上下文必须是一个Activity。

在不支持API级别11或更高级别的设备上,最高活动将作为新任务启动。 在支持API级别11或更高级别的设备上,新任务堆栈将被完整创建。

startActivities

void startActivities (Bundle options)

启动由此构建器构建的任务堆栈。 用于获取此构建器的上下文必须是一个Activity。

在不支持API级别11或更高级别的设备上,最高活动将作为新任务启动。 在支持API级别11或更高级别的设备上,新任务堆栈将被完整创建。

Parameters
options Bundle: Additional options for how the Activity should be started. See {@link android.content.Context#startActivity(Intent, Bundle)

Hooray!