Loading services/core/java/com/android/server/am/BroadcastProcessQueue.java +8 −0 Original line number Diff line number Diff line Loading @@ -864,6 +864,7 @@ class BroadcastProcessQueue { static final int REASON_CONTAINS_RESULT_TO = 15; static final int REASON_CONTAINS_INSTRUMENTED = 16; static final int REASON_CONTAINS_MANIFEST = 17; static final int REASON_FOREGROUND_ACTIVITIES = 18; @IntDef(flag = false, prefix = { "REASON_" }, value = { REASON_EMPTY, Loading @@ -883,6 +884,7 @@ class BroadcastProcessQueue { REASON_CONTAINS_RESULT_TO, REASON_CONTAINS_INSTRUMENTED, REASON_CONTAINS_MANIFEST, REASON_FOREGROUND_ACTIVITIES, }) @Retention(RetentionPolicy.SOURCE) public @interface Reason {} Loading @@ -906,6 +908,7 @@ class BroadcastProcessQueue { case REASON_CONTAINS_RESULT_TO: return "CONTAINS_RESULT_TO"; case REASON_CONTAINS_INSTRUMENTED: return "CONTAINS_INSTRUMENTED"; case REASON_CONTAINS_MANIFEST: return "CONTAINS_MANIFEST"; case REASON_FOREGROUND_ACTIVITIES: return "FOREGROUND_ACTIVITIES"; default: return Integer.toString(reason); } } Loading Loading @@ -963,6 +966,11 @@ class BroadcastProcessQueue { } else if (mProcessInstrumented) { mRunnableAt = runnableAt + constants.DELAY_URGENT_MILLIS; mRunnableAtReason = REASON_INSTRUMENTED; } else if (app != null && app.hasForegroundActivities()) { // TODO: Listen for uid state changes to check when an uid goes in and out of // the TOP state. mRunnableAt = runnableAt + constants.DELAY_URGENT_MILLIS; mRunnableAtReason = REASON_FOREGROUND_ACTIVITIES; } else if (mCountOrdered > 0) { mRunnableAt = runnableAt; mRunnableAtReason = REASON_CONTAINS_ORDERED; Loading services/core/java/com/android/server/am/ProcessRecord.java +5 −0 Original line number Diff line number Diff line Loading @@ -1050,6 +1050,11 @@ class ProcessRecord implements WindowProcessListener { return mState.isCached(); } @GuardedBy(anyOf = {"mService", "mProcLock"}) public boolean hasForegroundActivities() { return mState.hasForegroundActivities(); } boolean hasActivities() { return mWindowProcessController.hasActivities(); } Loading Loading
services/core/java/com/android/server/am/BroadcastProcessQueue.java +8 −0 Original line number Diff line number Diff line Loading @@ -864,6 +864,7 @@ class BroadcastProcessQueue { static final int REASON_CONTAINS_RESULT_TO = 15; static final int REASON_CONTAINS_INSTRUMENTED = 16; static final int REASON_CONTAINS_MANIFEST = 17; static final int REASON_FOREGROUND_ACTIVITIES = 18; @IntDef(flag = false, prefix = { "REASON_" }, value = { REASON_EMPTY, Loading @@ -883,6 +884,7 @@ class BroadcastProcessQueue { REASON_CONTAINS_RESULT_TO, REASON_CONTAINS_INSTRUMENTED, REASON_CONTAINS_MANIFEST, REASON_FOREGROUND_ACTIVITIES, }) @Retention(RetentionPolicy.SOURCE) public @interface Reason {} Loading @@ -906,6 +908,7 @@ class BroadcastProcessQueue { case REASON_CONTAINS_RESULT_TO: return "CONTAINS_RESULT_TO"; case REASON_CONTAINS_INSTRUMENTED: return "CONTAINS_INSTRUMENTED"; case REASON_CONTAINS_MANIFEST: return "CONTAINS_MANIFEST"; case REASON_FOREGROUND_ACTIVITIES: return "FOREGROUND_ACTIVITIES"; default: return Integer.toString(reason); } } Loading Loading @@ -963,6 +966,11 @@ class BroadcastProcessQueue { } else if (mProcessInstrumented) { mRunnableAt = runnableAt + constants.DELAY_URGENT_MILLIS; mRunnableAtReason = REASON_INSTRUMENTED; } else if (app != null && app.hasForegroundActivities()) { // TODO: Listen for uid state changes to check when an uid goes in and out of // the TOP state. mRunnableAt = runnableAt + constants.DELAY_URGENT_MILLIS; mRunnableAtReason = REASON_FOREGROUND_ACTIVITIES; } else if (mCountOrdered > 0) { mRunnableAt = runnableAt; mRunnableAtReason = REASON_CONTAINS_ORDERED; Loading
services/core/java/com/android/server/am/ProcessRecord.java +5 −0 Original line number Diff line number Diff line Loading @@ -1050,6 +1050,11 @@ class ProcessRecord implements WindowProcessListener { return mState.isCached(); } @GuardedBy(anyOf = {"mService", "mProcLock"}) public boolean hasForegroundActivities() { return mState.hasForegroundActivities(); } boolean hasActivities() { return mWindowProcessController.hasActivities(); } Loading