Merge "DO NOT MERGE: Reset launch start times when removing a process" into pi-dev

This commit is contained in:
Wale Ogunwale
2018-09-06 18:14:27 +00:00
committed by Android (Google) Code Review

View File

@@ -5889,6 +5889,7 @@ public class ActivityManagerService extends IActivityManager.Stub
private final void handleAppDiedLocked(ProcessRecord app,
boolean restarting, boolean allowRestart) {
int pid = app.pid;
final boolean clearLaunchStartTime = !restarting && app.removed && app.foregroundActivities;
boolean kept = cleanUpApplicationRecordLocked(app, restarting, allowRestart, -1,
false /*replacingPid*/);
if (!kept && !restarting) {
@@ -5929,6 +5930,19 @@ public class ActivityManagerService extends IActivityManager.Stub
} finally {
mWindowManager.continueSurfaceLayout();
}
// Hack for pi
// When an app process is removed, activities from the process may be relaunched. In the
// case of forceStopPackageLocked the activities are finished before any window is drawn,
// and the launch time is not cleared. This will be incorrectly used to calculate launch
// time for the next launched activity launched in the same windowing mode.
if (clearLaunchStartTime) {
final LaunchTimeTracker.Entry entry = mStackSupervisor
.getLaunchTimeTracker().getEntry(mStackSupervisor.getWindowingMode());
if (entry != null) {
entry.mLaunchStartTime = 0;
}
}
}
private final int getLRURecordIndexForAppLocked(IApplicationThread thread) {