summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/am/ActivityManagerService.java12
1 files changed, 7 insertions, 5 deletions
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index b4741d12bc15..a95b7f3799c2 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -5459,7 +5459,7 @@ public class ActivityManagerService extends IActivityManager.Stub
boolean doLowMem = app.instr == null;
boolean doOomAdj = doLowMem;
if (!app.killedByAm) {
- maybeNotifyTopAppKilled(app);
+ maybeNotifyTopAppKilledLocked(app);
Slog.i(TAG, "Process " + app.processName + " (pid " + pid + ") has died: "
+ ProcessList.makeOomAdjString(app.setAdj)
+ ProcessList.makeProcStateString(app.setProcState));
@@ -5494,8 +5494,8 @@ public class ActivityManagerService extends IActivityManager.Stub
}
/** Show system error dialog when a top app is killed by LMK */
- void maybeNotifyTopAppKilled(ProcessRecord app) {
- if (!shouldNotifyTopAppKilled(app)) {
+ void maybeNotifyTopAppKilledLocked(ProcessRecord app) {
+ if (!shouldNotifyTopAppKilledLocked(app)) {
return;
}
@@ -5505,8 +5505,10 @@ public class ActivityManagerService extends IActivityManager.Stub
}
/** Only show notification when the top app is killed on low ram devices */
- private boolean shouldNotifyTopAppKilled(ProcessRecord app) {
- return app.curSchedGroup == ProcessList.SCHED_GROUP_TOP_APP &&
+ private boolean shouldNotifyTopAppKilledLocked(ProcessRecord app) {
+ final ActivityRecord TOP_ACT = resumedAppLocked();
+ final ProcessRecord TOP_APP = TOP_ACT != null ? TOP_ACT.app : null;
+ return app == TOP_APP &&
ActivityManager.isLowRamDeviceStatic();
}