我正在尝试使用Google的Universal Music Player加PlayerNotificationManager
的代码播放一些音乐,该代码不是原始代码的一部分(但属于ExoPlayer 2)。
我的服务通过startForeground(...)
的回调正确完成了PlayerNotificationManager
:
playerNotificationManager.setNotificationListener(object : PlayerNotificationManager.NotificationListener {
override fun onNotificationStarted(notificationId: Int, notification: Notification?) {
startForeground(NOW_PLAYING_NOTIFICATION, notification)
}
override fun onNotificationCancelled(notificationId: Int) {
}
})
一切似乎都很好,直到我将应用程序的主要活动放回去并且服务在几秒钟之内被杀死:
2018-11-09 12:15:28.859 3680-3695/? W/ActivityManager: Stopping service due to app idle: u0a577 -1m19s332ms pl.qus.xenoamp2/pl.qus.xenoamp.xenoservice.MusicService
使用正确启动服务
Util.startForegroundService(...)
那么什么可能是错的?
答案 0 :(得分:0)
在回调onNotificationStarted
(或新引入的onNotificationPosted
)中代替使用
startForeground(NOW_PLAYING_NOTIFICATION, notification)
您必须使用提供的ID
startForeground(notificationId, notification)
,当您通过PlayerNotificationManager创建通知时,必须确保notificationId
不是0
。