OSDN Git Service

Merge "Don't kill apps when only clearing caches." into nyc-dev
authorTreeHugger Robot <treehugger-gerrit@google.com>
Wed, 13 Apr 2016 08:23:19 +0000 (08:23 +0000)
committerAndroid (Google) Code Review <android-gerrit@google.com>
Wed, 13 Apr 2016 08:23:20 +0000 (08:23 +0000)
1  2 
services/core/java/com/android/server/pm/PackageManagerService.java

@@@ -16051,19 -16042,17 +16051,18 @@@ public class PackageManagerService exte
              pkg = mPackages.get(packageName);
          }
  
 +        // Queue up an async operation since the package deletion may take a little while.
          mHandler.post(new Runnable() {
              public void run() {
-                 try (PackageFreezer freezer = freezePackage(packageName,
-                         "deleteApplicationCacheFiles")) {
-                     synchronized (mInstallLock) {
-                         final int flags = StorageManager.FLAG_STORAGE_DE
-                                 | StorageManager.FLAG_STORAGE_CE;
-                         clearAppDataLIF(pkg, userId, flags | Installer.FLAG_CLEAR_CACHE_ONLY);
-                         clearAppDataLIF(pkg, userId, flags | Installer.FLAG_CLEAR_CODE_CACHE_ONLY);
-                     }
-                     clearExternalStorageDataSync(packageName, userId, false);
-                 }
+                 synchronized (mInstallLock) {
+                     final int flags = StorageManager.FLAG_STORAGE_DE
+                             | StorageManager.FLAG_STORAGE_CE;
+                     // We're only clearing cache files, so we don't care if the
+                     // app is unfrozen and still able to run
+                     clearAppDataLIF(pkg, userId, flags | Installer.FLAG_CLEAR_CACHE_ONLY);
+                     clearAppDataLIF(pkg, userId, flags | Installer.FLAG_CLEAR_CODE_CACHE_ONLY);
+                 }
+                 clearExternalStorageDataSync(packageName, userId, false);
                  if (observer != null) {
                      try {
                          observer.onRemoveCompleted(packageName, true);