0

我正在尝试使用来自 Google 的 Universal Music Player plus 的代码播放一些音乐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(...)

那么可能有什么问题呢?

4

1 回答 1

1

在回调onNotificationStarted(或新引入onNotificationPosted的)而不是使用

startForeground(NOW_PLAYING_NOTIFICATION, notification)

您必须使用提供的 ID

startForeground(notificationId, notification)

当您通过 PlayerNotificationManager 创建通知时,您必须确保notificationId不是0

于 2019-11-25T17:12:09.893 回答