diff --git a/services/core/java/com/android/server/StorageManagerService.java b/services/core/java/com/android/server/StorageManagerService.java index 1ce3dfe9f3a0d..850f1c32646db 100644 --- a/services/core/java/com/android/server/StorageManagerService.java +++ b/services/core/java/com/android/server/StorageManagerService.java @@ -1083,7 +1083,12 @@ class StorageManagerService extends IStorageManager.Stub final List users = mContext.getSystemService(UserManager.class).getUsers(); if (mIsFuseEnabled) { - mStorageSessionController.onReset(mVold, mHandler); + mStorageSessionController.onReset(mVold, () -> { + mHandler.removeMessages(H_RESET); + mHandler.removeMessages(H_VOLUME_BROADCAST); + mHandler.removeMessages(H_VOLUME_MOUNT); + mHandler.removeMessages(H_VOLUME_UNMOUNT); + }); } else { killMediaProvider(users); } diff --git a/services/core/java/com/android/server/storage/StorageSessionController.java b/services/core/java/com/android/server/storage/StorageSessionController.java index 0fd77b9c03dd8..37df5481d3c4b 100644 --- a/services/core/java/com/android/server/storage/StorageSessionController.java +++ b/services/core/java/com/android/server/storage/StorageSessionController.java @@ -27,7 +27,6 @@ import android.content.pm.PackageManager; import android.content.pm.ProviderInfo; import android.content.pm.ResolveInfo; import android.content.pm.ServiceInfo; -import android.os.Handler; import android.os.IVold; import android.os.ParcelFileDescriptor; import android.os.RemoteException; @@ -238,7 +237,7 @@ public final class StorageSessionController { * * Does nothing if {@link #shouldHandle} is {@code false} **/ - public void onReset(IVold vold, Handler handler) { + public void onReset(IVold vold, Runnable resetHandlerRunnable) { if (!shouldHandle(null)) { return; } @@ -280,7 +279,7 @@ public final class StorageSessionController { connection.close(); } - handler.removeCallbacksAndMessages(null); + resetHandlerRunnable.run(); synchronized (mLock) { mConnections.clear(); mIsResetting = false;