diff options
3 files changed, 36 insertions, 34 deletions
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index e4a6f3c7c96d..26ece5474f25 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -3484,27 +3484,29 @@ public final class ActivityManagerService extends ActivityManagerNative Watchdog.getInstance().processStarted(app.processName, startResult.pid); } - checkTime(startTime, "startProcess: building log message"); - StringBuilder buf = mStringBuilder; - buf.setLength(0); - buf.append("Start proc "); - buf.append(startResult.pid); - buf.append(':'); - buf.append(app.processName); - buf.append('/'); - UserHandle.formatUid(buf, uid); - if (!isActivityProcess) { - buf.append(" ["); - buf.append(entryPoint); - buf.append("]"); - } - buf.append(" for "); - buf.append(hostingType); - if (hostingNameStr != null) { - buf.append(" "); - buf.append(hostingNameStr); - } - Slog.i(TAG, buf.toString()); + if (DEBUG_PROCESSES) { + checkTime(startTime, "startProcess: building log message"); + StringBuilder buf = mStringBuilder; + buf.setLength(0); + buf.append("Start proc "); + buf.append(startResult.pid); + buf.append(':'); + buf.append(app.processName); + buf.append('/'); + UserHandle.formatUid(buf, uid); + if (!isActivityProcess) { + buf.append(" ["); + buf.append(entryPoint); + buf.append("]"); + } + buf.append(" for "); + buf.append(hostingType); + if (hostingNameStr != null) { + buf.append(" "); + buf.append(hostingNameStr); + } + Slog.i(TAG, buf.toString()); + } app.setPid(startResult.pid); app.usingWrapper = startResult.usingWrapper; app.removed = false; @@ -19748,7 +19750,7 @@ public final class ActivityManagerService extends ActivityManagerNative } else { numEmpty++; if (numEmpty > emptyProcessLimit) { - app.kill("empty #" + numEmpty, true); + app.kill("empty #" + numEmpty, DEBUG_PROCESSES); } } break; diff --git a/services/core/java/com/android/server/am/ActivityStack.java b/services/core/java/com/android/server/am/ActivityStack.java index b052d17a8dcb..9e32efa1a1c2 100644 --- a/services/core/java/com/android/server/am/ActivityStack.java +++ b/services/core/java/com/android/server/am/ActivityStack.java @@ -74,6 +74,7 @@ import android.os.Trace; import android.os.UserHandle; import android.service.voice.IVoiceInteractionSession; import android.util.EventLog; +import android.util.Log; import android.util.Slog; import android.view.Display; @@ -733,7 +734,7 @@ final class ActivityStack { "Launch completed; removing icicle of " + r.icicle); } - private void addRecentActivityLocked(ActivityRecord r) { + void addRecentActivityLocked(ActivityRecord r) { if (r != null) { mRecentTasks.addLocked(r.task); r.task.touchActiveTime(); @@ -2312,8 +2313,8 @@ final class ActivityStack { updateTaskMovement(task, true); } - final void startActivityLocked(ActivityRecord r, boolean newTask, - boolean doResume, boolean keepCurTransition, ActivityOptions options) { + final void startActivityLocked(ActivityRecord r, boolean newTask, boolean keepCurTransition, + ActivityOptions options) { TaskRecord rTask = r.task; final int taskId = rTask.taskId; // mLaunchTaskBehind tasks get placed at the back of the task stack. @@ -2459,12 +2460,6 @@ final class ActivityStack { if (VALIDATE_TOKENS) { validateAppTokensLocked(); } - - if (doResume) { - mStackSupervisor.resumeTopActivitiesLocked(this, r, options); - } else { - addRecentActivityLocked(r); - } } final void validateAppTokensLocked() { diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java index f4ba19f53937..9fff0c81d3ae 100644 --- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java +++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java @@ -2628,9 +2628,14 @@ public final class ActivityStackSupervisor implements DisplayListener { } ActivityStack.logStartActivity(EventLogTags.AM_CREATE_ACTIVITY, r, r.task); targetStack.mLastPausedActivity = null; - targetStack.startActivityLocked(r, newTask, doResume, keepCurTransition, options); - if (!launchTaskBehind && doResume) { - mService.setFocusedActivityLocked(r, "startedActivity"); + targetStack.startActivityLocked(r, newTask, keepCurTransition, options); + if (doResume) { + if (!launchTaskBehind) { + mService.setFocusedActivityLocked(r, "startedActivity"); + } + resumeTopActivitiesLocked(targetStack, r, options); + } else { + targetStack.addRecentActivityLocked(r); } updateUserStackLocked(r.userId, targetStack); |