Remove ActivityRecords for sandbox activities when App/sandbox died

Bug: 277051501
Test: ag/22464148

Change-Id: Ief10f1cab49baa5c3ef99fd061bf46b18bc89baf
This commit is contained in:
Mohammed Rashidy
2023-04-05 15:11:59 +01:00
parent 829ec26cf8
commit a7b6be8ad6

View File

@@ -4144,7 +4144,12 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
*/
void handleAppDied() {
final boolean remove;
if ((mRelaunchReason == RELAUNCH_REASON_WINDOWING_MODE_RESIZE
if (Process.isSdkSandboxUid(getUid())) {
// Sandbox activities are created for SDKs run in the sandbox process, when the sandbox
// process dies, the SDKs are unloaded and can not handle the activity, so sandbox
// activity records should be removed.
remove = true;
} else if ((mRelaunchReason == RELAUNCH_REASON_WINDOWING_MODE_RESIZE
|| mRelaunchReason == RELAUNCH_REASON_FREE_RESIZE)
&& launchCount < 3 && !finishing) {
// If the process crashed during a resize, always try to relaunch it, unless it has