我们可以在后台从一个确切的警报接收器启动 ForegroundServie 吗?

Can we startForegroundServie from an exact alarm's receiver in the background?

在“无法从后台启动前台服务”限制的豁免之一中,文档提到:

Your app invokes an exact alarm to complete an action that the user requests.

这是否意味着下面的使用场景可以工作?

  1. 使用 AlarmManager.setAlarmClock 安排一个确切的警报在时间 A 触发。警报携带一个 pendingIntent 以注册的广播接收器为目标。

  2. 时间 A 命中,接收者得到意图。

  3. 在接收器 OnCreate 方法中,我们尝试 startForegroundService 这涉及显示粘性通知并使用 MediaPlayer 播放自定义音乐。

我已经实施并测试了它,它似乎在工作,所以我认为这是一个有效的用例。