diff options
| -rw-r--r-- | services/core/java/com/android/server/pm/InstallPackageHelper.java | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/pm/InstallPackageHelper.java b/services/core/java/com/android/server/pm/InstallPackageHelper.java index 4cca85590967..a35b57d9f0d5 100644 --- a/services/core/java/com/android/server/pm/InstallPackageHelper.java +++ b/services/core/java/com/android/server/pm/InstallPackageHelper.java @@ -861,7 +861,6 @@ final class InstallPackageHelper { // restore if appropriate, then pass responsibility back to the // Package Manager to run the post-install observer callbacks // and broadcasts. - request.closeFreezer(); doRestore = performBackupManagerRestore(userId, token, request); } @@ -898,8 +897,11 @@ final class InstallPackageHelper { } } } else { - // No restore possible, or the Backup Manager was mysteriously not - // available -- just fire the post-install work request directly. + // No restore possible, or the Backup Manager was mysteriously not available. + // we don't need to wait for restore to complete before closing the freezer, + // so we can close the freezer right away. + // Also just fire the post-install work request directly. + request.closeFreezer(); if (DEBUG_INSTALL) Log.v(TAG, "No restore - queue post-install for " + token); Trace.asyncTraceBegin(TRACE_TAG_PACKAGE_MANAGER, "postInstall", token); |