Moved activity to stopped state if relaunched while device is asleep

am: 3e99736b61

Change-Id: I38552093c320d5c4ff74e615ae8b9959f306cd82
This commit is contained in:
Wale Ogunwale
2016-09-07 22:01:11 +00:00
committed by android-build-merger
3 changed files with 12 additions and 11 deletions

View File

@@ -1309,8 +1309,12 @@ final class ActivityRecord {
state == ActivityState.RESUMED;
}
public void setSleeping(boolean _sleeping) {
if (sleeping == _sleeping) {
void setSleeping(boolean _sleeping) {
setSleeping(_sleeping, false);
}
void setSleeping(boolean _sleeping, boolean force) {
if (!force && sleeping == _sleeping) {
return;
}
if (app != null && app.thread != null) {

View File

@@ -4512,15 +4512,6 @@ final class ActivityStack {
return true;
}
// TODO: We could probably make the condition below just check that the activity state is
// stopped, but also checking the sleep state for now to reduce change impact late in
// development cycle.
if (mService.isSleepingOrShuttingDownLocked() && r.state == ActivityState.STOPPED) {
if (DEBUG_SWITCH || DEBUG_CONFIGURATION) Slog.v(TAG_CONFIGURATION,
"Skipping config check (stopped while sleeping): " + r);
return true;
}
if (DEBUG_SWITCH || DEBUG_CONFIGURATION) Slog.v(TAG_CONFIGURATION,
"Ensuring correct configuration: " + r);

View File

@@ -3708,6 +3708,12 @@ public final class ActivityStackSupervisor implements DisplayListener {
void activityRelaunchedLocked(IBinder token) {
mWindowManager.notifyAppRelaunchingFinished(token);
if (mService.isSleepingOrShuttingDownLocked()) {
final ActivityRecord r = ActivityRecord.isInStackLocked(token);
if (r != null) {
r.setSleeping(true, true);
}
}
}
void activityRelaunchingLocked(ActivityRecord r) {