【发布时间】:2019-10-28 19:25:38
【问题描述】:
我正在使用 ExoPlayer 构建一个类似于 Spotify 的应用程序。当歌曲开始播放时,我正在启动播放器通知,即使将应用程序置于后台也应该播放它。因此,当用户故意从 Ram 中清除应用程序但 onDestory() 不像 stated here 那样可靠时,我需要释放播放器并保存最后播放的歌曲。所以,我想在自定义 Application 中的 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")
}
这里只执行第一个日志。在这种情况下,释放资源的最佳方法是什么?
【问题讨论】:
标签: android kotlin exoplayer2.x