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)
将按照规定构建合成背堆栈。 在运行较旧版本平台的设备上,这些相同的调用将调用所提供堆栈中的最顶层活动,忽略合成堆栈的其余部分,并允许后退键导航回前一个任务。
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) 此方法已弃用。 改为使用 |
Intent |
getIntent(int index) 此方法已弃用。 将其更名为editIntentAt以更好地反映预期用法 |
int |
getIntentCount() |
Intent[] |
getIntents() 返回包含添加到此构建器的意图的数组。 |
PendingIntent |
getPendingIntent(int requestCode, int flags) 获取 |
PendingIntent |
getPendingIntent(int requestCode, int flags, Bundle options) 获取 |
Iterator<Intent> |
iterator() 此方法已弃用。 改用editIntentAt |
void |
startActivities() 启动由此构建器构建的任务堆栈。 |
void |
startActivities(Bundle options) 启动由此构建器构建的任务堆栈。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
|
From interface java.lang.Iterable
|
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 |
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. |
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 |
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 |
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 |
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 |
Intent editIntentAt (int index)
将指定的索引返回以进行修改。 如果您需要修改之前添加的意向标志或附加项,例如addParentStack(Activity)
,则此功能addParentStack(Activity)
。
Parameters | |
---|---|
index |
int : Index from 0-getIntentCount() |
Returns | |
---|---|
Intent |
the intent at position index |
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 |
Intent getIntent (int index)
此方法已弃用。
将其更名为editIntentAt以更好地反映预期用法
获取指定索引的意图。 如果您需要修改之前添加的意向标志或附加项,例如addParentStack(Activity)
,则此功能addParentStack(Activity)
。
Parameters | |
---|---|
index |
int : Index from 0-getIntentCount() |
Returns | |
---|---|
Intent |
the intent at position index |
int getIntentCount ()
Returns | |
---|---|
int |
the number of intents added so far. |
Intent[] getIntents ()
返回包含添加到此构建器的意图的数组。 任务堆栈的根目录将显示为数组中的第一个项目,并且堆栈顶部的目标将显示为最后一个项目。
Returns | |
---|---|
Intent[] |
An array containing the intents added to this builder. |
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 |
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<Intent> iterator ()
此方法已弃用。
改用editIntentAt
返回类型为 T
元素的迭代器。
Returns | |
---|---|
Iterator<Intent> |
an Iterator. |
void startActivities ()
启动由此构建器构建的任务堆栈。 用于获取此构建器的上下文必须是一个Activity。
在不支持API级别11或更高级别的设备上,最高活动将作为新任务启动。 在支持API级别11或更高级别的设备上,新任务堆栈将被完整创建。
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) |