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

Commit b55e42df authored by liulvping's avatar liulvping Committed by Wale Ogunwale
Browse files

Clear pending activity launches when force stop package

https://code.google.com/p/android/issues/detail?id=223731



It is possible that an activity in pending launches be resumed while
it's package was stopped by some other reason, like uninstall pkg.

Merged-In: I130ded89cee162aa59ac2bf330f026e49e16ef69
Change-Id: I130ded89cee162aa59ac2bf330f026e49e16ef69
Signed-off-by: default avatarliulvping <liulvping@xiaomi.com>
parent 0ac1aa82
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -6098,6 +6098,8 @@ public final class ActivityManagerService extends ActivityManagerNative
                ProcessList.INVALID_ADJ, callerWillRestart, true, doit, evenPersistent,
                packageName == null ? ("stop user " + userId) : ("stop " + packageName));
        didSomething |= mActivityStarter.clearPendingActivityLaunchesLocked(packageName);
        if (mStackSupervisor.finishDisabledPackageActivitiesLocked(
                packageName, null, doit, evenPersistent, userId)) {
            if (!doit) {
+14 −0
Original line number Diff line number Diff line
@@ -2006,4 +2006,18 @@ class ActivityStarter {
            }
        }
    }

    boolean clearPendingActivityLaunchesLocked(String packageName) {
        boolean didSomething = false;

        for (int palNdx = mPendingActivityLaunches.size() - 1; palNdx >= 0; --palNdx) {
            PendingActivityLaunch pal = mPendingActivityLaunches.get(palNdx);
            ActivityRecord r = pal.r;
            if (r != null && r.packageName.equals(packageName)) {
                mPendingActivityLaunches.remove(palNdx);
                didSomething = true;
            }
        }
        return didSomething;
    }
}