diff options
-rw-r--r-- | cmds/bootanimation/BootAnimation.cpp | 3 | ||||
-rw-r--r-- | services/java/com/android/server/am/ActivityStack.java | 15 |
2 files changed, 15 insertions, 3 deletions
diff --git a/cmds/bootanimation/BootAnimation.cpp b/cmds/bootanimation/BootAnimation.cpp index 9085dc3..a7ced44 100644 --- a/cmds/bootanimation/BootAnimation.cpp +++ b/cmds/bootanimation/BootAnimation.cpp @@ -307,9 +307,6 @@ bool BootAnimation::threadLoop() r = movie(); } - // No need to force exit anymore - property_set(EXIT_PROP_NAME, "0"); - eglMakeCurrent(mDisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); eglDestroyContext(mDisplay, mContext); eglDestroySurface(mDisplay, mSurface); diff --git a/services/java/com/android/server/am/ActivityStack.java b/services/java/com/android/server/am/ActivityStack.java index 2e914aa..14d1d13 100644 --- a/services/java/com/android/server/am/ActivityStack.java +++ b/services/java/com/android/server/am/ActivityStack.java @@ -1769,6 +1769,21 @@ final class ActivityStack { r.putInHistory(); r.frontOfTask = newTask; + if (!r.frontOfTask) { + // It is possible that the current frontOfTask activity is finishing. Check for that. + ArrayList<ActivityRecord> activities = task.mActivities; + for (int activityNdx = 0; activityNdx < activities.size(); ++activityNdx) { + final ActivityRecord activity = activities.get(activityNdx); + if (activity.finishing) { + continue; + } + if (activity == r) { + // All activities before r are finishing. + r.frontOfTask = true; + } + break; + } + } if (!isHomeStack() || numActivities() > 0) { // We want to show the starting preview window if we are // switching to a new task, or the next activity's process is |