Check PendingStartActivityUids in getAppStartModeLocked.
While starting activity, WindowManager posts a runnable to DisplayThread to updateOomAdj. The UidRecord update could be delayed. In getAppStartModeLocked(), before checking UidRecord, check PendingStartActivityUids to determine if the uid is in foreground state. Bug: 160213874 Test: Reproduce steps in b/160213874, launch GCA and take a photo immediately. Change-Id: Ieb984d2f629d607abfbda89ca00f8785cf5923fd
This commit is contained in:
@@ -6341,6 +6341,9 @@ public class ActivityManagerService extends IActivityManager.Stub
|
||||
|
||||
int getAppStartModeLocked(int uid, String packageName, int packageTargetSdk,
|
||||
int callingPid, boolean alwaysRestrict, boolean disabledOnly, boolean forcedStandby) {
|
||||
if (mInternal.isPendingTopUid(uid)) {
|
||||
return ActivityManager.APP_START_MODE_NORMAL;
|
||||
}
|
||||
UidRecord uidRec = mProcessList.getUidRecordLocked(uid);
|
||||
if (DEBUG_BACKGROUND_CHECK) Slog.d(TAG, "checkAllowBackground: uid=" + uid + " pkg="
|
||||
+ packageName + " rec=" + uidRec + " always=" + alwaysRestrict + " idle="
|
||||
|
||||
Reference in New Issue
Block a user