在Android O中运行后台运行Intentservice

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Android O中运行后台运行Intentservice相关的知识,希望对你有一定的参考价值。

我从IntentService开始一个MainActivity。该服务负责初始化FCM数据对象(节点),该数据对象监听在FCM(云)上完成的任何更改。当有任何数据更改时,将触发推送通知。

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

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

以上是关于在Android O中运行后台运行Intentservice的主要内容,如果未能解决你的问题,请参考以下文章

在 Android O 设备上后台运行的应用程序的位置收集都有哪些限制?

Android O,后台服务运行超过 30 分钟。为啥?

FileObserver 在后台监听,Android O

Android Services (后台服务)

当android应用程序后台运行时如何在android中隐藏视图(在后台运行时不停止android拍摄快照)[重复]

android客户端和服务器端怎么交互