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

Commit 6b8dc68c authored by Wei Sheng Shih's avatar Wei Sheng Shih
Browse files

Revert "Correct activity's lifecycle when the process was killed in background."

This reverts commit bec26a07.

Reason for revert: 334702695

Change-Id: I4faa1b19476517c25908f7cdd37ea12cb1ad5183
Merged-In: I80756609fe643877971408934b19ad97aa0ae746
parent bec26a07
Loading
Loading
Loading
Loading
+2 −9
Original line number Diff line number Diff line
@@ -57,7 +57,6 @@ import static com.android.server.wm.ActivityRecord.State.PAUSED;
import static com.android.server.wm.ActivityRecord.State.PAUSING;
import static com.android.server.wm.ActivityRecord.State.RESTARTING_PROCESS;
import static com.android.server.wm.ActivityRecord.State.RESUMED;
import static com.android.server.wm.ActivityRecord.State.STOPPING;
import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_ALL;
import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_CLEANUP;
import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_IDLE;
@@ -105,7 +104,6 @@ import android.app.servertransaction.ActivityLifecycleItem;
import android.app.servertransaction.LaunchActivityItem;
import android.app.servertransaction.PauseActivityItem;
import android.app.servertransaction.ResumeActivityItem;
import android.app.servertransaction.StopActivityItem;
import android.companion.virtual.VirtualDeviceManager;
import android.content.ComponentName;
import android.content.Context;
@@ -946,10 +944,8 @@ public class ActivityTaskSupervisor implements RecentTasks.Callbacks {
                if (andResume) {
                    lifecycleItem = ResumeActivityItem.obtain(r.token, isTransitionForward,
                            r.shouldSendCompatFakeFocus());
                } else if (r.isVisibleRequested()) {
                    lifecycleItem = PauseActivityItem.obtain(r.token);
                } else {
                    lifecycleItem = StopActivityItem.obtain(r.token);
                    lifecycleItem = PauseActivityItem.obtain(r.token);
                }

                // Schedule transaction.
@@ -1016,7 +1012,7 @@ public class ActivityTaskSupervisor implements RecentTasks.Callbacks {
            // As part of the process of launching, ActivityThread also performs
            // a resume.
            rootTask.minimalResumeActivityLocked(r);
        } else if (r.isVisibleRequested()) {
        } else {
            // This activity is not starting in the resumed state... which should look like we asked
            // it to pause+stop (but remain visible), and it has done so and reported back the
            // current icicle and other state.
@@ -1024,9 +1020,6 @@ public class ActivityTaskSupervisor implements RecentTasks.Callbacks {
                    + "(starting in paused state)", r);
            r.setState(PAUSED, "realStartActivityLocked");
            mRootWindowContainer.executeAppTransitionForAllDisplay();
        } else {
            // This activity is starting while invisible, so it should be stopped.
            r.setState(STOPPING, "realStartActivityLocked");
        }
        // Perform OOM scoring after the activity state is set, so the process can be updated with
        // the latest state.
+3 −2
Original line number Diff line number Diff line
@@ -33,7 +33,6 @@ import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.times;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
import static com.android.server.wm.ActivityRecord.State.PAUSED;
import static com.android.server.wm.ActivityRecord.State.STOPPING;
import static com.android.server.wm.RecentsAnimationController.REORDER_KEEP_IN_PLACE;
import static com.android.server.wm.WindowContainer.POSITION_TOP;

@@ -165,12 +164,13 @@ public class RecentsAnimationTest extends WindowTestsBase {
        ActivityRecord recentsActivity = recentsStack.getTopNonFinishingActivity();
        // The activity is started in background so it should be invisible and will be stopped.
        assertThat(recentsActivity).isNotNull();
        assertThat(recentsActivity.getState()).isEqualTo(STOPPING);
        assertThat(mSupervisor.mStoppingActivities).contains(recentsActivity);
        assertFalse(recentsActivity.isVisibleRequested());

        // Assume it is stopped to test next use case.
        recentsActivity.activityStopped(null /* newIcicle */, null /* newPersistentState */,
                null /* description */);
        mSupervisor.mStoppingActivities.remove(recentsActivity);

        spyOn(recentsActivity);
        // Start when the recents activity exists. It should ensure the configuration.
@@ -178,6 +178,7 @@ public class RecentsAnimationTest extends WindowTestsBase {
                null /* recentsAnimationRunner */);

        verify(recentsActivity).ensureActivityConfiguration(eq(true) /* ignoreVisibility */);
        assertThat(mSupervisor.mStoppingActivities).contains(recentsActivity);
    }

    @Test