diff options
| author | 2024-04-02 10:46:23 +0800 | |
|---|---|---|
| committer | 2024-07-10 16:37:07 +0000 | |
| commit | ad92d12079cc1aff49cd27f8b5470347a5e36dcb (patch) | |
| tree | ade9ef998b7118bd3d5f10d0e26e127f19783cd5 | |
| parent | d5658e260d85af41ead884d46c4621b22ca2f1ff (diff) | |
Fix unbind service error for MusicFxHelper
Unbinding an unbound service will cause an exception,
for example: service not registered: com.android.server.audio.MusicFxHelper.
Flag: EXEMPT bugfix
Bug: 332454067
Bug: 350408926
Test: run MTBF test and no crash
Test: MusicFx panel enable/disable
Test: atest com.android.server.audio.MusicFxHelperTest
Change-Id: Ic519221b2bb7d28e5378a995519f8b3269d03c70
Merged-In: Ic519221b2bb7d28e5378a995519f8b3269d03c70
| -rw-r--r-- | services/core/java/com/android/server/audio/MusicFxHelper.java | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/audio/MusicFxHelper.java b/services/core/java/com/android/server/audio/MusicFxHelper.java index ba453101046f..cf0b2ae15618 100644 --- a/services/core/java/com/android/server/audio/MusicFxHelper.java +++ b/services/core/java/com/android/server/audio/MusicFxHelper.java @@ -70,6 +70,8 @@ public class MusicFxHelper { // The binder token identifying the UidObserver registration. private IBinder mUidObserverToken = null; + private boolean mIsBound; + // Package name and list of open audio sessions for this package private static class PackageSessions { String mPackageName; @@ -109,6 +111,7 @@ public class MusicFxHelper { if (procState > ActivityManager.PROCESS_STATE_IMPORTANT_FOREGROUND) { Intent bindIntent = new Intent().setClassName(mMusicFxPackageName, "com.android.musicfx.KeepAliveService"); + mIsBound = true; mContext.bindServiceAsUser( bindIntent, mMusicFxBindConnection, Context.BIND_AUTO_CREATE, UserHandle.of(getCurrentUserId())); @@ -157,9 +160,12 @@ public class MusicFxHelper { Log.e(TAG, "RemoteException with unregisterUidObserver: " + e); } mUidObserverToken = null; - mContext.unbindService(mMusicFxBindConnection); - Log.i(TAG, "last session closed, unregister UID observer, and unbind " - + mMusicFxPackageName); + if (mIsBound) { + mContext.unbindService(mMusicFxBindConnection); + mIsBound = false; + Log.i(TAG, "last session closed, unregister UID observer, and unbind " + + mMusicFxPackageName); + } } } } |