Loading services/core/java/com/android/server/wm/ActivityRecord.java +8 −37 Original line number Diff line number Diff line Loading @@ -545,9 +545,6 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A boolean launchFailed; // set if a launched failed, to abort on 2nd try boolean delayedResume; // not yet resumed because of stopped app switches? boolean finishing; // activity in pending finish list? boolean deferRelaunchUntilPaused; // relaunch of activity is being deferred until pause is // completed boolean preserveWindowOnDeferredRelaunch; // activity windows are preserved on deferred relaunch int configChangeFlags; // which config values have changed private boolean keysPaused; // has key dispatching been paused for it? int launchMode; // the launch mode activity attribute. Loading Loading @@ -1277,10 +1274,8 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A if (mDeferHidingClient) { pw.println(prefix + "mDeferHidingClient=" + mDeferHidingClient); } if (deferRelaunchUntilPaused || configChangeFlags != 0) { pw.print(prefix); pw.print("deferRelaunchUntilPaused="); pw.print(deferRelaunchUntilPaused); pw.print(" configChangeFlags="); if (configChangeFlags != 0) { pw.print(prefix); pw.print(" configChangeFlags="); pw.println(Integer.toHexString(configChangeFlags)); } if (mServiceConnectionsHolder != null) { Loading Loading @@ -2137,7 +2132,6 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A launchFailed = false; delayedResume = false; finishing = false; deferRelaunchUntilPaused = false; keysPaused = false; inHistory = false; nowVisible = false; Loading Loading @@ -4096,8 +4090,6 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A // Clean up the splash screen if it was still displayed. cleanUpSplashScreen(); deferRelaunchUntilPaused = false; if (setState) { setState(DESTROYED, "cleanUp"); if (DEBUG_APP) Slog.v(TAG_APP, "Clearing app during cleanUp for activity " + this); Loading Loading @@ -6481,9 +6473,6 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A mAppStopped = true; ProtoLog.v(WM_DEBUG_STATES, "Stop failed; moving to STOPPED: %s", this); setState(STOPPED, "stopIfPossible"); if (deferRelaunchUntilPaused) { destroyImmediately("stop-except"); } } } Loading Loading @@ -6538,14 +6527,9 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A if (finishing) { abortAndClearOptionsAnimation(); } else { if (deferRelaunchUntilPaused) { destroyImmediately("stop-config"); mRootWindowContainer.resumeFocusedTasksTopActivities(); } else { mAtmService.updatePreviousProcess(this); } } mTaskSupervisor.checkReadyForSleepLocked(true /* allowDelay */); } Loading Loading @@ -9724,23 +9708,12 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A } else { mRelaunchReason = RELAUNCH_REASON_NONE; } if (mState == PAUSING) { // A little annoying: we are waiting for this activity to finish pausing. Let's not // do anything now, but just flag that it needs to be restarted when done pausing. ProtoLog.v(WM_DEBUG_CONFIGURATION, "Config is skipping already pausing %s", this); deferRelaunchUntilPaused = true; preserveWindowOnDeferredRelaunch = preserveWindow; return true; } else { ProtoLog.v(WM_DEBUG_CONFIGURATION, "Config is relaunching %s", this); ProtoLog.v(WM_DEBUG_CONFIGURATION, "Config is relaunching %s", this); if (!mVisibleRequested) { ProtoLog.v(WM_DEBUG_STATES, "Config is relaunching invisible " + "activity %s called by %s", this, Debug.getCallers(4)); } relaunchActivityLocked(preserveWindow); } // All done... tell the caller we weren't able to keep this activity around. return false; Loading Loading @@ -9958,8 +9931,6 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A mTaskSupervisor.mStoppingActivities.remove(this); configChangeFlags = 0; deferRelaunchUntilPaused = false; preserveWindowOnDeferredRelaunch = false; } /** Loading services/core/java/com/android/server/wm/TaskFragment.java +1 −5 Original line number Diff line number Diff line Loading @@ -1915,11 +1915,7 @@ class TaskFragment extends WindowContainer<WindowContainer> { ProtoLog.v(WM_DEBUG_STATES, "Enqueue pending stop if needed: %s " + "wasStopping=%b visibleRequested=%b", prev, wasStopping, prev.isVisibleRequested()); if (prev.deferRelaunchUntilPaused) { // Complete the deferred relaunch that was waiting for pause to complete. ProtoLog.v(WM_DEBUG_STATES, "Re-launching after pause: %s", prev); prev.relaunchActivityLocked(prev.preserveWindowOnDeferredRelaunch); } else if (wasStopping) { if (wasStopping) { // We are also stopping, the stop request must have gone soon after the pause. // We can't clobber it, because the stop confirmation will not be handled. // We don't need to schedule another stop, we only need to let it happen. Loading Loading
services/core/java/com/android/server/wm/ActivityRecord.java +8 −37 Original line number Diff line number Diff line Loading @@ -545,9 +545,6 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A boolean launchFailed; // set if a launched failed, to abort on 2nd try boolean delayedResume; // not yet resumed because of stopped app switches? boolean finishing; // activity in pending finish list? boolean deferRelaunchUntilPaused; // relaunch of activity is being deferred until pause is // completed boolean preserveWindowOnDeferredRelaunch; // activity windows are preserved on deferred relaunch int configChangeFlags; // which config values have changed private boolean keysPaused; // has key dispatching been paused for it? int launchMode; // the launch mode activity attribute. Loading Loading @@ -1277,10 +1274,8 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A if (mDeferHidingClient) { pw.println(prefix + "mDeferHidingClient=" + mDeferHidingClient); } if (deferRelaunchUntilPaused || configChangeFlags != 0) { pw.print(prefix); pw.print("deferRelaunchUntilPaused="); pw.print(deferRelaunchUntilPaused); pw.print(" configChangeFlags="); if (configChangeFlags != 0) { pw.print(prefix); pw.print(" configChangeFlags="); pw.println(Integer.toHexString(configChangeFlags)); } if (mServiceConnectionsHolder != null) { Loading Loading @@ -2137,7 +2132,6 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A launchFailed = false; delayedResume = false; finishing = false; deferRelaunchUntilPaused = false; keysPaused = false; inHistory = false; nowVisible = false; Loading Loading @@ -4096,8 +4090,6 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A // Clean up the splash screen if it was still displayed. cleanUpSplashScreen(); deferRelaunchUntilPaused = false; if (setState) { setState(DESTROYED, "cleanUp"); if (DEBUG_APP) Slog.v(TAG_APP, "Clearing app during cleanUp for activity " + this); Loading Loading @@ -6481,9 +6473,6 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A mAppStopped = true; ProtoLog.v(WM_DEBUG_STATES, "Stop failed; moving to STOPPED: %s", this); setState(STOPPED, "stopIfPossible"); if (deferRelaunchUntilPaused) { destroyImmediately("stop-except"); } } } Loading Loading @@ -6538,14 +6527,9 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A if (finishing) { abortAndClearOptionsAnimation(); } else { if (deferRelaunchUntilPaused) { destroyImmediately("stop-config"); mRootWindowContainer.resumeFocusedTasksTopActivities(); } else { mAtmService.updatePreviousProcess(this); } } mTaskSupervisor.checkReadyForSleepLocked(true /* allowDelay */); } Loading Loading @@ -9724,23 +9708,12 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A } else { mRelaunchReason = RELAUNCH_REASON_NONE; } if (mState == PAUSING) { // A little annoying: we are waiting for this activity to finish pausing. Let's not // do anything now, but just flag that it needs to be restarted when done pausing. ProtoLog.v(WM_DEBUG_CONFIGURATION, "Config is skipping already pausing %s", this); deferRelaunchUntilPaused = true; preserveWindowOnDeferredRelaunch = preserveWindow; return true; } else { ProtoLog.v(WM_DEBUG_CONFIGURATION, "Config is relaunching %s", this); ProtoLog.v(WM_DEBUG_CONFIGURATION, "Config is relaunching %s", this); if (!mVisibleRequested) { ProtoLog.v(WM_DEBUG_STATES, "Config is relaunching invisible " + "activity %s called by %s", this, Debug.getCallers(4)); } relaunchActivityLocked(preserveWindow); } // All done... tell the caller we weren't able to keep this activity around. return false; Loading Loading @@ -9958,8 +9931,6 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A mTaskSupervisor.mStoppingActivities.remove(this); configChangeFlags = 0; deferRelaunchUntilPaused = false; preserveWindowOnDeferredRelaunch = false; } /** Loading
services/core/java/com/android/server/wm/TaskFragment.java +1 −5 Original line number Diff line number Diff line Loading @@ -1915,11 +1915,7 @@ class TaskFragment extends WindowContainer<WindowContainer> { ProtoLog.v(WM_DEBUG_STATES, "Enqueue pending stop if needed: %s " + "wasStopping=%b visibleRequested=%b", prev, wasStopping, prev.isVisibleRequested()); if (prev.deferRelaunchUntilPaused) { // Complete the deferred relaunch that was waiting for pause to complete. ProtoLog.v(WM_DEBUG_STATES, "Re-launching after pause: %s", prev); prev.relaunchActivityLocked(prev.preserveWindowOnDeferredRelaunch); } else if (wasStopping) { if (wasStopping) { // We are also stopping, the stop request must have gone soon after the pause. // We can't clobber it, because the stop confirmation will not be handled. // We don't need to schedule another stop, we only need to let it happen. Loading