在Android O中运行后台运行Intentservice

时间:2018-03-20 04:57:55

标签: android firebase firebase-cloud-messaging

我从Exception 'Parameter result does not exist' 开始IntentService。该服务负责初始化FCM数据对象(节点),该数据对象监听在FCM(云)上完成的任何更改。当有任何数据更改时,会触发推送通知。

现在,由于Android O不允许服务在后台运行,因此没有观察到推送通知。如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

  1. IntentService无意长时间运行。为了执行长时间运行的任务,您通常会使用Service
  2. 从Android O开始,即使是普通服务也需要background execution limitations。您可以通过将其定义为Foreground Service来使您的服务免于被系统杀死。通常最简单的方法是显示持久通知。
  3. 就FCM而言,您可以简单地register your service for receiving FCM data messages并安全地期望它被调用。如果您的逻辑(响应FCM数据消息)不是非常耗时,则该服务甚至不必是前台服务。