Я создаю приложение точно так же, как Spotify, используя ExoPlayer. Я запускаю уведомление плеера, когда начинается воспроизведение песни, и она должна воспроизводиться, даже если приложение находится в фоновом режиме. Поэтому мне нужно выпустить проигрыватель и сохранить последнюю проигранную песню, когда пользователь намеренно удаляет приложение из плеера, но onDestory()
не является надежным, поскольку указано здесь . Итак, я думал, что делать очистку ресурса в onActivityDestroyed()
в пользовательском приложении , но это тоже не удалось.
override fun onActivityDestroyed(activity: Activity?) {
val activityName = activity!!.localClassName
Log.d(TAG, "onActivityDestroyed: activity name ==> $activityName")
val musicPlayerDAO =
MusicPlayerDatabase.getDatabase(applicationContext).musicPlayerDao()
val repository = Repository(musicPlayerDAO)
val job = Job()
CoroutineScope(Dispatchers.IO + job).launch {
repository.insertLastPlayedSong(LastPlayedSongEntity("Dummy title", 3000))
}
Log.d(TAG, "onActivityDestroyed: Just after the co-routine")
}
Здесь выполняется только первый журнал. Каков наилучший способ высвобождения ресурсов в этом случае?