Merge "DO NOT MERGE: Reset launch start times when removing a process" into pi-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
1932d101fa
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user