Merge "docs: Noted how singleTop affects "up" navigation." into klp-modular-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
643fa8d1ec
@@ -453,7 +453,7 @@ Similarly, a new instance of a "{@code singleTop}" activity may also be
|
|||||||
created to handle a new intent. However, if the target task already has an
|
created to handle a new intent. However, if the target task already has an
|
||||||
existing instance of the activity at the top of its stack, that instance
|
existing instance of the activity at the top of its stack, that instance
|
||||||
will receive the new intent (in an
|
will receive the new intent (in an
|
||||||
<code>{@link android.app.Activity#onNewIntent onNewIntent()}</code> call);
|
{@link android.app.Activity#onNewIntent onNewIntent()} call);
|
||||||
a new instance is not created.
|
a new instance is not created.
|
||||||
In other circumstances — for example, if an existing instance of the
|
In other circumstances — for example, if an existing instance of the
|
||||||
"{@code singleTop}" activity is in the target task, but not at the top of
|
"{@code singleTop}" activity is in the target task, but not at the top of
|
||||||
@@ -461,6 +461,22 @@ the stack, or if it's at the top of a stack, but not in the target task
|
|||||||
— a new instance would be created and pushed on the stack.
|
— a new instance would be created and pushed on the stack.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
<p>Similarly, if you
|
||||||
|
<a href="{@docRoot}training/implementing-navigation/ancestral.html">navigate
|
||||||
|
up</a> to an activity on the current stack, the behavior is determined by the
|
||||||
|
parent activity's launch mode. If the parent activity has launch mode {@code
|
||||||
|
singleTop} (or the <code>up</code> intent contains {@link
|
||||||
|
android.content.Intent#FLAG_ACTIVITY_CLEAR_TOP}), the parent is brought to the
|
||||||
|
top of the stack, and its state is preserved. The navigation intent is received
|
||||||
|
by the parent activity's {@link android.app.Activity#onNewIntent onNewIntent()}
|
||||||
|
method. If the parent activity has launch mode {@code standard} (and the
|
||||||
|
<code>up</code> intent does not contain {@link
|
||||||
|
android.content.Intent#FLAG_ACTIVITY_CLEAR_TOP}), the current activity and its
|
||||||
|
parent are both popped off the stack, and a new instance of the parent activity
|
||||||
|
is created to receive the navigation intent.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
The "{@code singleTask}" and "{@code singleInstance}" modes also differ from
|
The "{@code singleTask}" and "{@code singleInstance}" modes also differ from
|
||||||
each other in only one respect: A "{@code singleTask}" activity allows other
|
each other in only one respect: A "{@code singleTask}" activity allows other
|
||||||
|
|||||||
@@ -133,7 +133,25 @@ android.support.v4.app.NavUtils} class's static method,
|
|||||||
navigateUpFromSameTask()}. When you call this method, it finishes the current activity and
|
navigateUpFromSameTask()}. When you call this method, it finishes the current activity and
|
||||||
starts (or resumes) the appropriate parent activity.
|
starts (or resumes) the appropriate parent activity.
|
||||||
If the target parent activity is in the task's back stack, it is brought
|
If the target parent activity is in the task's back stack, it is brought
|
||||||
forward as defined by {@link android.content.Intent#FLAG_ACTIVITY_CLEAR_TOP}.</p>
|
forward. The way it is brought forward depends on whether the parent activity
|
||||||
|
is able to handle an {@link
|
||||||
|
android.app.Activity#onNewIntent onNewIntent()} call:</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>If the parent activity has launch mode <a
|
||||||
|
href="{@docRoot}guide/topics/manifest/activity-element.html#lmode">{@code
|
||||||
|
<singleTop>}</a>, or the <code>up</code> intent contains {@link
|
||||||
|
android.content.Intent#FLAG_ACTIVITY_CLEAR_TOP}, the parent activity is
|
||||||
|
brought to the top of the stack, and receives the intent through its
|
||||||
|
{@link android.app.Activity#onNewIntent onNewIntent()} method.</li>
|
||||||
|
|
||||||
|
<li>If the parent activity has launch mode <a
|
||||||
|
href="{@docRoot}guide/topics/manifest/activity-element.html#lmode">{@code
|
||||||
|
<standard>}</a>, and the <code>up</code> intent does not contain
|
||||||
|
{@link android.content.Intent#FLAG_ACTIVITY_CLEAR_TOP}, the parent activity
|
||||||
|
is popped off the stack, and a new instance of that activity is created on
|
||||||
|
top of the stack to receive the intent.</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
<p>For example:</p>
|
<p>For example:</p>
|
||||||
|
|
||||||
@@ -157,7 +175,6 @@ activity was started in a task that belongs to a different app, then
|
|||||||
navigating <em>Up</em> should create a new task that belongs to your app, which
|
navigating <em>Up</em> should create a new task that belongs to your app, which
|
||||||
requires that you create a new back stack.</p>
|
requires that you create a new back stack.</p>
|
||||||
|
|
||||||
|
|
||||||
<h3 id="BuildBackStack">Navigate up with a new back stack</h3>
|
<h3 id="BuildBackStack">Navigate up with a new back stack</h3>
|
||||||
|
|
||||||
<p>If your activity provides any <a
|
<p>If your activity provides any <a
|
||||||
|
|||||||
Reference in New Issue
Block a user