summaryrefslogtreecommitdiffstats
path: root/services/core/java/com/android/server/am
diff options
context:
space:
mode:
authorlouis_chang <louis_chang@htc.com>2015-01-21 19:01:52 +0800
committerCraig Mautner <cmautner@google.com>2015-01-21 21:38:31 +0000
commitb4d43538d7cbcea5ddcfd32edb4ada2c211b2a04 (patch)
tree68daf96cd4f41bcf2db97677332d4f0b66a4175e /services/core/java/com/android/server/am
parent088bf3a37a329962efb5e5a42c82f32a2dab77fe (diff)
downloadframeworks_base-b4d43538d7cbcea5ddcfd32edb4ada2c211b2a04.zip
frameworks_base-b4d43538d7cbcea5ddcfd32edb4ada2c211b2a04.tar.gz
frameworks_base-b4d43538d7cbcea5ddcfd32edb4ada2c211b2a04.tar.bz2
Resume home activity can skip resume and cause ANR. DO NOT MERGE
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
Diffstat (limited to 'services/core/java/com/android/server/am')
-rwxr-xr-xservices/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 c3a344f..4e932c1 100755
--- a/services/core/java/com/android/server/am/ActivityStack.java
+++ b/services/core/java/com/android/server/am/ActivityStack.java
@@ -1525,14 +1525,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);
}
}