NavUtils
class NavUtils
kotlin.Any | |
↳ | androidx.core.app.NavUtils |
NavUtils provides helper functionality for applications implementing recommended Android UI navigation patterns. For information about recommended navigation patterns see Tasks and Back Stack from the developer guide and Navigation from the design guide.
Summary
Constants | |
---|---|
static String |
Public methods | |
---|---|
static Intent? |
getParentActivityIntent(@NonNull : Activity) Obtain an |
static Intent? |
getParentActivityIntent(@NonNull : Context, @NonNull : Class<*>) Obtain an |
static Intent? |
getParentActivityIntent(@NonNull : Context, @NonNull : ComponentName) Obtain an |
static String? |
getParentActivityName(@NonNull : Activity) Return the fully qualified class name of sourceActivity's parent activity as specified by a |
static String? |
getParentActivityName(@NonNull : Context, @NonNull : ComponentName) Return the fully qualified class name of a source activity's parent activity as specified by a |
static Unit |
navigateUpFromSameTask(@NonNull : Activity) Convenience method that is equivalent to calling |
static Unit |
navigateUpTo(@NonNull : Activity, @NonNull : Intent) Navigate from sourceActivity to the activity specified by upIntent, finishing sourceActivity in the process. |
static Boolean |
shouldUpRecreateTask(@NonNull : Activity, @NonNull : Intent) Returns true if sourceActivity should recreate the task when navigating 'up' by using targetIntent. |
Constants
Public methods
getParentActivityIntent
@Nullable static fun getParentActivityIntent(@NonNull : Activity): Intent?
Obtain an Intent
that will launch an explicit target activity specified by sourceActivity's PARENT_ACTIVITY
<meta-data> element in the application's manifest. If the device is running Jellybean or newer, the android:parentActivityName attribute will be preferred if it is present.
Parameters | |
---|---|
sourceActivity |
Activity: Activity to fetch a parent intent for |
Return | |
---|---|
Intent? |
a new Intent targeting the defined parent activity of sourceActivity |
getParentActivityIntent
@Nullable static fun getParentActivityIntent(
@NonNull : Context,
@NonNull : Class<*>
): Intent?
Obtain an Intent
that will launch an explicit target activity specified by sourceActivityClass's PARENT_ACTIVITY
<meta-data> element in the application's manifest.
Parameters | |
---|---|
context |
Context: Context for looking up the activity component for sourceActivityClass |
sourceActivityClass |
Class<*>: java.lang.Class object for an Activity class |
Return | |
---|---|
Intent? |
a new Intent targeting the defined parent activity of sourceActivity |
Exceptions | |
---|---|
NameNotFoundException |
if the ComponentName for sourceActivityClass is invalid |
getParentActivityIntent
@Nullable static fun getParentActivityIntent(
@NonNull : Context,
@NonNull : ComponentName
): Intent?
Obtain an Intent
that will launch an explicit target activity specified by sourceActivityClass's PARENT_ACTIVITY
<meta-data> element in the application's manifest.
Parameters | |
---|---|
context |
Context: Context for looking up the activity component for the source activity |
componentName |
ComponentName: ComponentName for the source Activity |
Return | |
---|---|
Intent? |
a new Intent targeting the defined parent activity of sourceActivity |
Exceptions | |
---|---|
NameNotFoundException |
if the ComponentName for sourceActivityClass is invalid |
getParentActivityName
@Nullable static fun getParentActivityName(@NonNull : Activity): String?
Return the fully qualified class name of sourceActivity's parent activity as specified by a PARENT_ACTIVITY
<meta-data> element within the activity element in the application's manifest.
Parameters | |
---|---|
sourceActivity |
Activity: Activity to fetch a parent class name for |
Return | |
---|---|
String? |
The fully qualified class name of sourceActivity's parent activity or null if it was not specified |
getParentActivityName
@Nullable static fun getParentActivityName(
@NonNull : Context,
@NonNull : ComponentName
): String?
Return the fully qualified class name of a source activity's parent activity as specified by a PARENT_ACTIVITY
<meta-data> element within the activity element in the application's manifest. The source activity is provided by componentName.
Parameters | |
---|---|
context |
Context: Context for looking up the activity component for the source activity |
componentName |
ComponentName: ComponentName for the source Activity |
Return | |
---|---|
String? |
The fully qualified class name of sourceActivity's parent activity or null if it was not specified |
navigateUpFromSameTask
static fun navigateUpFromSameTask(@NonNull : Activity): Unit
Convenience method that is equivalent to calling
. sourceActivity will be finished by this call. navigateUpTo
(sourceActivity, getParentActivityIntent
(sourceActivity))
Note: This method should only be used when sourceActivity and the corresponding parent are within the same task. If up navigation should cross tasks in some cases, see shouldUpRecreateTask(Activity, Intent)
.
Parameters | |
---|---|
sourceActivity |
Activity: The current activity from which the user is attempting to navigate up |
navigateUpTo
static fun navigateUpTo(
@NonNull : Activity,
@NonNull : Intent
): Unit
Navigate from sourceActivity to the activity specified by upIntent, finishing sourceActivity in the process. upIntent will have the flag Intent#FLAG_ACTIVITY_CLEAR_TOP
set by this method, along with any others required for proper up navigation as outlined in the Android Design Guide.
This method should be used when performing up navigation from within the same task as the destination. If up navigation should cross tasks in some cases, see shouldUpRecreateTask(Activity, Intent)
.
Parameters | |
---|---|
sourceActivity |
Activity: The current activity from which the user is attempting to navigate up |
upIntent |
Intent: An intent representing the target destination for up navigation |
shouldUpRecreateTask
static fun shouldUpRecreateTask(
@NonNull : Activity,
@NonNull : Intent
): Boolean
Returns true if sourceActivity should recreate the task when navigating 'up' by using targetIntent.
If this method returns false the app can trivially call navigateUpTo(Activity, Intent)
using the same parameters to correctly perform up navigation. If this method returns true, the app should synthesize a new task stack by using TaskStackBuilder
or another similar mechanism to perform up navigation.
Parameters | |
---|---|
sourceActivity |
Activity: The current activity from which the user is attempting to navigate up |
targetIntent |
Intent: An intent representing the target destination for up navigation |
Return | |
---|---|
Boolean |
true if navigating up should recreate a new task stack, false if the same task should be used for the destination |