Follow up for I420bee8a11d430b1e52ded050536e56a85a48800
- Log when hasTopUi state changes - Add hasTopUi to dumpstate - Only allow persistent processes to honor this flag Bug: 30292998 Change-Id: Ifb481c8d50b102ea4cac3078ea3eb39e45c08259
This commit is contained in:
@@ -662,9 +662,11 @@ public interface IActivityManager extends IInterface {
|
||||
public void setRenderThread(int tid) throws RemoteException;
|
||||
|
||||
/**
|
||||
* Let's activity manager know whether the calling process is currently showing "top-level" UI
|
||||
* Lets activity manager know whether the calling process is currently showing "top-level" UI
|
||||
* that is not an activity, i.e. windows on the screen the user is currently interacting with.
|
||||
*
|
||||
* <p>This flag can only be set for persistent processes.
|
||||
*
|
||||
* @param hasTopUi Whether the calling process has "top-level" UI.
|
||||
*/
|
||||
public void setHasTopUi(boolean hasTopUi) throws RemoteException;
|
||||
|
||||
@@ -12700,6 +12700,7 @@ public final class ActivityManagerService extends ActivityManagerNative
|
||||
return;
|
||||
}
|
||||
if (pr.hasTopUi != hasTopUi) {
|
||||
Slog.i(TAG, "Setting hasTopUi=" + hasTopUi + " for pid=" + pid);
|
||||
pr.hasTopUi = hasTopUi;
|
||||
changed = true;
|
||||
}
|
||||
@@ -19189,10 +19190,14 @@ public final class ActivityManagerService extends ActivityManagerNative
|
||||
// facilitate this, here we need to determine whether or not it
|
||||
// is currently showing UI.
|
||||
app.systemNoUi = true;
|
||||
if (app == TOP_APP || app.hasTopUi) {
|
||||
if (app == TOP_APP) {
|
||||
app.systemNoUi = false;
|
||||
app.curSchedGroup = ProcessList.SCHED_GROUP_TOP_APP;
|
||||
app.adjType = "pers-top-activity";
|
||||
} else if (app.hasTopUi) {
|
||||
app.systemNoUi = false;
|
||||
app.curSchedGroup = ProcessList.SCHED_GROUP_TOP_APP;
|
||||
app.adjType = "pers-top-ui";
|
||||
} else if (activitiesSize > 0) {
|
||||
for (int j = 0; j < activitiesSize; j++) {
|
||||
final ActivityRecord r = app.activities.get(j);
|
||||
@@ -19218,7 +19223,7 @@ public final class ActivityManagerService extends ActivityManagerNative
|
||||
int procState;
|
||||
boolean foregroundActivities = false;
|
||||
BroadcastQueue queue;
|
||||
if (app == TOP_APP || app.hasTopUi) {
|
||||
if (app == TOP_APP) {
|
||||
// The last app on the list is the foreground app.
|
||||
adj = ProcessList.FOREGROUND_APP_ADJ;
|
||||
schedGroup = ProcessList.SCHED_GROUP_TOP_APP;
|
||||
|
||||
@@ -436,6 +436,9 @@ final class ProcessRecord {
|
||||
pw.print(prefix); pw.print(" - "); pw.println(receivers.valueAt(i));
|
||||
}
|
||||
}
|
||||
if (hasTopUi) {
|
||||
pw.print(prefix); pw.print("hasTopUi="); pw.print(hasTopUi);
|
||||
}
|
||||
}
|
||||
|
||||
ProcessRecord(BatteryStatsImpl _batteryStats, ApplicationInfo _info,
|
||||
|
||||
Reference in New Issue
Block a user