首先提供一些背景信息
[当应用在Android 8+中处于后台时,我在启动后台服务时遇到问题。该文档清楚地描述了the new limitations用于背景执行。
所以我继续将我的服务实现为JobIntentService(简单情况下的推荐方法)。这似乎很好用……对于我还是遇到的第一个错误。
[Android 8之前,我们的应用正在使用后台服务通过RingtoneManager播放铃声(在onStartCommand()中开始播放,并在服务停止时停止播放)。这工作得很好。
由于新的后台执行限制,我也尝试使用JobIntentService来完成此任务,但注意到无法将其明确停止。好的,所以我尝试使用JobScheduler和JobService(因为据我了解,JobIntentService基本上应该做相同的事情,而不必担心创建JobInfo)。我没有任何特殊要求,因此我使用了JobIntentService(setOverrideDeadline(0))所使用的相同内容。
JobService已启动,但是即使我从onStartJob()返回true,它也会被系统立即停止。我正在研究这个问题-也许我在这里做错了。
我有点困惑,播放和停止铃声这一简单问题似乎并不简单,包括背景内容(如果我的应用程序具有某种调用功能,我只需要这个上班了,那为什么还要在这里弄乱我的意思呢?]
我主要不是Android开发人员,因此我可能缺少一些重要的显而易见的东西。我尝试了无休止的搜索,并获得了很多使用RingtoneManager甚至甚至是[[MediaPlayer或类似的东西来播放东西的示例,但是我没有提到背景问题。
感谢任何输入,谢谢。股票的Android手机应用程序还会显示呼叫通知,因此也许他们在这里做同样的事情。