[ActivityManager] Fix a bug: unable to start activity after starting activities during screen off.
Symptom: Unable to start any activity.
Root Cause: ActivityStack.mPausingActivity() points to a destroyed activity of a died process, so that ActivityStackSupervisor.allPausedActivitiesComplete() always returns false.
Solution: Set mPausingActivity to null in ActivityStack.cleanUpActivityLocked().
Reproduce steps:
a. Turn screen off.
b. A background service starts an activity X (in process X).
c. A background service starts a no-history activity Y (in process Y), but the main thread of Y was blocked.
d. A background service starts Y 3~4 times --> this causes am_failed_to_pause on X.
e. Main thread of Y is freed finally --> this causes Y crash for android.view.WindowManager$BadTokenException.
f. Turn screen on, X is shown on screen, but neither back key nor home key can work because mPausingActivity is Y.
Change-Id: I320b3db407e2d4cc745c8ca22a6e548742234242
1 file changed