belongs to Maven artifact com.android.support:support-compat:28.0.0-alpha1
TaskStackBuilder
public
final
class
TaskStackBuilder
extends Object
implements
Iterable<Intent>
java.lang.Object | |
↳ | android.support.v4.app.TaskStackBuilder |
Utility class for constructing synthetic back stacks for cross-task navigation on Android 3.0 and newer.
In API level 11 (Android 3.0/Honeycomb) the recommended conventions for app navigation using the back key changed. The back key's behavior is local to the current task and does not capture navigation across different tasks. Navigating across tasks and easily reaching the previous task is accomplished through the "recents" UI, accessible through the software-provided Recents key on the navigation or system bar. On devices with the older hardware button configuration the recents UI can be accessed with a long press on the Home key.
When crossing from one task stack to another post-Android 3.0, the application should synthesize a back stack/history for the new task so that the user may navigate out of the new task and back to the Launcher by repeated presses of the back key. Back key presses should not navigate across task stacks.
TaskStackBuilder provides a backward-compatible way to obey the correct conventions
around cross-task navigation on the device's version of the platform. On devices running
Android 3.0 or newer, calls to the startActivities()
method or sending the
PendingIntent
generated by getPendingIntent(int, int)
will construct
the synthetic back stack as prescribed. On devices running older versions of the platform,
these same calls will invoke the topmost activity in the supplied stack, ignoring
the rest of the synthetic stack and allowing the back key to navigate back to the previous
task.
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)
Add a new Intent to the task stack. |
TaskStackBuilder
|
addNextIntentWithParentStack(Intent nextIntent)
Add a new Intent with the resolved chain of parents for the target activity to the task stack. |
TaskStackBuilder
|
addParentStack(ComponentName sourceActivityName)
Add the activity parent chain as specified by manifest <meta-data> elements to the task stack builder. |
TaskStackBuilder
|
addParentStack(Activity sourceActivity)
Add the activity parent chain as specified by manifest <meta-data> elements to the task stack builder. |
TaskStackBuilder
|
addParentStack(Class<?> sourceActivityClass)
Add the activity parent chain as specified by manifest <meta-data> elements to the task stack builder. |
static
TaskStackBuilder
|
create(Context context)
Return a new TaskStackBuilder for launching a fresh task stack consisting of a series of activities. |
Intent
|
editIntentAt(int index)
Return the intent at the specified index for modification. |
static
TaskStackBuilder
|
from(Context context)
This method was deprecated
in API level 22.1.0.
use |
Intent
|
getIntent(int index)
This method was deprecated in API level 22.1.0. Renamed to editIntentAt to better reflect intended usage |
int
|
getIntentCount()
|
Intent[]
|
getIntents()
Return an array containing the intents added to this builder. |
PendingIntent
|
getPendingIntent(int requestCode, int flags)
Obtain a |
PendingIntent
|
getPendingIntent(int requestCode, int flags, Bundle options)
Obtain a |
Iterator<Intent>
|
iterator()
This method was deprecated in API level 22.1.0. Use editIntentAt instead |
void
|
startActivities()
Start the task stack constructed by this builder. |
void
|
startActivities(Bundle options)
Start the task stack constructed by this builder. |
Inherited methods | |
---|---|
From
class
java.lang.Object
| |
From
interface
java.lang.Iterable
|
Public methods
addNextIntent
TaskStackBuilder addNextIntent (Intent nextIntent)
Add a new Intent to the task stack. The most recently added Intent will invoke the Activity at the top of the final task stack.
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)
Add a new Intent with the resolved chain of parents for the target activity to the task stack.
This is equivalent to calling addParentStack
with the resolved ComponentName of nextIntent (if it can be resolved), followed by
addNextIntent
with nextIntent.
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)
Add the activity parent chain as specified by manifest <meta-data> elements to the task stack builder.
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)
Add the activity parent chain as specified by manifest <meta-data> elements to the task stack builder.
Parameters | |
---|---|
sourceActivity |
Activity : All parents of this activity will be added |
Returns | |
---|---|
TaskStackBuilder |
This TaskStackBuilder for method chaining |
addParentStack
TaskStackBuilder addParentStack (Class<?> sourceActivityClass)
Add the activity parent chain as specified by manifest <meta-data> elements to the task stack builder.
Parameters | |
---|---|
sourceActivityClass |
Class : All parents of this activity will be added |
Returns | |
---|---|
TaskStackBuilder |
This TaskStackBuilder for method chaining |
create
TaskStackBuilder create (Context context)
Return a new TaskStackBuilder for launching a fresh task stack consisting of a series of activities.
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)
Return the intent at the specified index for modification.
Useful if you need to modify the flags or extras of an intent that was previously added,
for example with addParentStack(Activity)
.
Parameters | |
---|---|
index |
int : Index from 0-getIntentCount() |
Returns | |
---|---|
Intent |
the intent at position index |
from
TaskStackBuilder from (Context context)
This method was deprecated
in API level 22.1.0.
use create(Context)
instead
Return a new TaskStackBuilder for launching a fresh task stack consisting of a series of activities.
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)
This method was deprecated
in API level 22.1.0.
Renamed to editIntentAt to better reflect intended usage
Get the intent at the specified index.
Useful if you need to modify the flags or extras of an intent that was previously added,
for example with 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 ()
Return an array containing the intents added to this builder. The intent at the root of the task stack will appear as the first item in the array and the intent at the top of the stack will appear as the last item.
Returns | |
---|---|
Intent[] |
An array containing the intents added to this builder. |
getPendingIntent
PendingIntent getPendingIntent (int requestCode, int flags)
Obtain a PendingIntent
for launching the task constructed by this builder so far.
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. May return null only if
FLAG_NO_CREATE has been supplied.
|
getPendingIntent
PendingIntent getPendingIntent (int requestCode, int flags, Bundle options)
Obtain a PendingIntent
for launching the task constructed by this builder so far.
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 startActivity(Intent, Bundle) |
Returns | |
---|---|
PendingIntent |
The obtained PendingIntent. May return null only if
FLAG_NO_CREATE has been supplied.
|
iterator
Iterator<Intent> iterator ()
This method was deprecated
in API level 22.1.0.
Use editIntentAt instead
Returns | |
---|---|
Iterator<Intent> |
startActivities
void startActivities ()
Start the task stack constructed by this builder. The Context used to obtain this builder must be an Activity.
On devices that do not support API level 11 or higher the topmost activity will be started as a new task. On devices that do support API level 11 or higher the new task stack will be created in its entirety.
startActivities
void startActivities (Bundle options)
Start the task stack constructed by this builder. The Context used to obtain this builder must be an Activity.
On devices that do not support API level 11 or higher the topmost activity will be started as a new task. On devices that do support API level 11 or higher the new task stack will be created in its entirety.
Parameters | |
---|---|
options |
Bundle : Additional options for how the Activity should be started.
See startActivity(Intent, Bundle)
|
Annotations
Interfaces
- ActionBarDrawerToggle.Delegate
- ActionBarDrawerToggle.DelegateProvider
- ActivityCompat.OnRequestPermissionsResultCallback
- ActivityCompat.PermissionCompatDelegate
- FragmentManager.BackStackEntry
- FragmentManager.OnBackStackChangedListener
- LoaderManager.LoaderCallbacks
- NotificationCompat.Action.Extender
- NotificationCompat.Extender
- SharedElementCallback.OnSharedElementsReadyListener
- TaskStackBuilder.SupportParentable
Classes
- ActionBarDrawerToggle
- ActivityCompat
- ActivityManagerCompat
- ActivityOptionsCompat
- AlarmManagerCompat
- AppLaunchChecker
- AppOpsManagerCompat
- BundleCompat
- DialogFragment
- Fragment
- Fragment.SavedState
- FragmentActivity
- FragmentContainer
- FragmentController
- FragmentHostCallback
- FragmentManager
- FragmentManager.FragmentLifecycleCallbacks
- FragmentManagerNonConfig
- FragmentPagerAdapter
- FragmentStatePagerAdapter
- FragmentTabHost
- FragmentTransaction
- FrameMetricsAggregator
- JobIntentService
- ListFragment
- LoaderManager
- NavUtils
- NotificationCompat
- NotificationCompat.Action
- NotificationCompat.Action.Builder
- NotificationCompat.Action.WearableExtender
- NotificationCompat.BigPictureStyle
- NotificationCompat.BigTextStyle
- NotificationCompat.Builder
- NotificationCompat.CarExtender
- NotificationCompat.CarExtender.UnreadConversation
- NotificationCompat.CarExtender.UnreadConversation.Builder
- NotificationCompat.DecoratedCustomViewStyle
- NotificationCompat.InboxStyle
- NotificationCompat.MessagingStyle
- NotificationCompat.MessagingStyle.Message
- NotificationCompat.Style
- NotificationCompat.WearableExtender
- NotificationCompatExtras
- NotificationCompatSideChannelService
- NotificationManagerCompat
- RemoteInput
- RemoteInput.Builder
- ServiceCompat
- ShareCompat
- ShareCompat.IntentBuilder
- ShareCompat.IntentReader
- SharedElementCallback
- TaskStackBuilder
Exceptions
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2024-04-11 UTC.