fix(): Fixed memory leak when use MusicService in fold-out window

This commit is contained in:
yonta 2022-09-04 11:54:29 +00:00
parent 2b64c7ea3d
commit 14a0a6d1c9

View file

@ -277,6 +277,7 @@ class MusicService : MediaBrowserServiceCompat(),
private var wakeLock: WakeLock? = null
private var notificationManager: NotificationManager? = null
private var isForeground = false
private var audioVolumeObserver: AudioVolumeObserver? = null
override fun onCreate() {
super.onCreate()
val telephonyManager = getSystemService<TelephonyManager>()
@ -354,8 +355,8 @@ class MusicService : MediaBrowserServiceCompat(),
.registerContentObserver(
MediaStore.Audio.Playlists.INTERNAL_CONTENT_URI, true, mediaStoreObserver
)
val audioVolumeObserver = AudioVolumeObserver(this)
audioVolumeObserver.register(AudioManager.STREAM_MUSIC, this)
// val audioVolumeObserver = AudioVolumeObserver(this)
audioVolumeObserver?.register(AudioManager.STREAM_MUSIC, this)
registerOnSharedPreferenceChangedListener(this)
restoreState()
sendBroadcast(Intent("code.name.monkey.retromusic.RETRO_MUSIC_SERVICE_CREATED"))
@ -386,6 +387,9 @@ class MusicService : MediaBrowserServiceCompat(),
releaseResources()
contentResolver.unregisterContentObserver(mediaStoreObserver)
unregisterOnSharedPreferenceChangedListener(this)
// add unregister audioVolumeObserver method to avoid memory leak
// val audioVolumeObserver = AudioVolumeObserver(this)
audioVolumeObserver?.unregister()
wakeLock?.release()
sendBroadcast(Intent("code.name.monkey.retromusic.RETRO_MUSIC_SERVICE_DESTROYED"))
}