summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author louis_chang <louis_chang@htc.com> 2015-01-21 19:01:52 +0800
committer louis_chang <louis_chang@htc.com> 2015-01-21 19:01:52 +0800
commit2d094e947759d4c3f331e5679667e5ca1b45c48f (patch)
treee7d57b0e67c65b3aac6c440d4339cd420aa2f624
parente4a031e3c3b234ff91ce62e95b788eca7e00082c (diff)
[ActivityManager] No home activity resumed and cause
key dispatch ANR Symptom: In some scenario, there might have two home tasks in the home stack. If the top home task was finishing and expected to return to home stack, no activity will resume. Root Cause: Unable to perform resumeHomeStackTask() because the resumeTopActivityLocked() has been prevented to invoke recursively. Solution: Just resume the next activity if already in home stack Change-Id: I24ecbcac6cee4ddbd90cdd27c4f4915cffb9b354
-rw-r--r--services/core/java/com/android/server/am/ActivityStack.java10
1 files changed, 5 insertions, 5 deletions
diff --git a/services/core/java/com/android/server/am/ActivityStack.java b/services/core/java/com/android/server/am/ActivityStack.java
index c03dbc29eb35..152f8d7fbd6f 100644
--- a/services/core/java/com/android/server/am/ActivityStack.java
+++ b/services/core/java/com/android/server/am/ActivityStack.java
@@ -1553,14 +1553,14 @@ final class ActivityStack {
// Now the task above it has to return to the home task instead.
final int taskNdx = mTaskHistory.indexOf(prevTask) + 1;
mTaskHistory.get(taskNdx).setTaskToReturnTo(HOME_ACTIVITY_TYPE);
- } else {
- if (DEBUG_STATES && isOnHomeDisplay()) Slog.d(TAG,
+ } else if (!isOnHomeDisplay()) {
+ return false;
+ } else if (!isHomeStack()){
+ if (DEBUG_STATES) Slog.d(TAG,
"resumeTopActivityLocked: Launching home next");
- // Only resume home if on home display
final int returnTaskType = prevTask == null || !prevTask.isOverHomeStack() ?
HOME_ACTIVITY_TYPE : prevTask.getTaskToReturnTo();
- return isOnHomeDisplay() &&
- mStackSupervisor.resumeHomeStackTask(returnTaskType, prev);
+ return mStackSupervisor.resumeHomeStackTask(returnTaskType, prev);
}
}