Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1e0f7627 authored by Android (Google) Code Review's avatar Android (Google) Code Review
Browse files

Merge change 22673 into eclair

* changes:
  Make SINGLE_TOP work with CLEAR_TOP.
parents e18d4d01 aa52f9a7
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -2128,12 +2128,14 @@ public class Intent implements Parcelable {
     * of activity B, then C and D will be finished and B receive the given
     * Intent, resulting in the stack now being: A, B.
     *
     * <p>The currently running instance of task B in the above example will
     * <p>The currently running instance of activity B in the above example will
     * either receive the new intent you are starting here in its
     * onNewIntent() method, or be itself finished and restarted with the
     * new intent.  If it has declared its launch mode to be "multiple" (the
     * default) it will be finished and re-created; for all other launch modes
     * it will receive the Intent in the current instance.
     * default) and you have not set {@link #FLAG_ACTIVITY_SINGLE_TOP} in
     * the same intent, then it will be finished and re-created; for all other
     * launch modes or if {@link #FLAG_ACTIVITY_SINGLE_TOP} is set then this
     * Intent will be delivered to the current instance's onNewIntent().
     *
     * <p>This launch mode can also be used to good effect in conjunction with
     * {@link #FLAG_ACTIVITY_NEW_TASK}: if used to start the root activity
+5 −4
Original line number Diff line number Diff line
@@ -2915,7 +2915,7 @@ public final class ActivityManagerService extends ActivityManagerNative implemen
     * or null if none was found.
     */
    private final HistoryRecord performClearTaskLocked(int taskId,
            HistoryRecord newR, boolean doClear) {
            HistoryRecord newR, int launchFlags, boolean doClear) {
        int i = mHistory.size();
        
        // First find the requested task.
@@ -2958,7 +2958,8 @@ public final class ActivityManagerService extends ActivityManagerNative implemen
                // Finally, if this is a normal launch mode (that is, not
                // expecting onNewIntent()), then we will finish the current
                // instance of the activity so a new fresh one can be started.
                if (ret.launchMode == ActivityInfo.LAUNCH_MULTIPLE) {
                if (ret.launchMode == ActivityInfo.LAUNCH_MULTIPLE
                        && (launchFlags&Intent.FLAG_ACTIVITY_SINGLE_TOP) == 0) {
                    if (!ret.finishing) {
                        int index = indexOfTokenLocked(ret);
                        if (index >= 0) {
@@ -3355,7 +3356,7 @@ public final class ActivityManagerService extends ActivityManagerNative implemen
                        // cases this means we are resetting the task to its
                        // initial state.
                        HistoryRecord top = performClearTaskLocked(
                                taskTop.task.taskId, r, true);
                                taskTop.task.taskId, r, launchFlags, true);
                        if (top != null) {
                            if (top.frontOfTask) {
                                // Activity aliases may mean we use different
@@ -3498,7 +3499,7 @@ public final class ActivityManagerService extends ActivityManagerNative implemen
                // task, but the caller has asked to clear that task if the
                // activity is already running.
                HistoryRecord top = performClearTaskLocked(
                        sourceRecord.task.taskId, r, true);
                        sourceRecord.task.taskId, r, launchFlags, true);
                if (top != null) {
                    logStartActivity(LOG_AM_NEW_INTENT, r, top.task);
                    deliverNewIntentLocked(top, r.intent);