消息接收的Android后台服务

Posted

技术标签:

【中文标题】消息接收的Android后台服务【英文标题】:Android Background Service for Message Receiving 【发布时间】:2018-04-03 03:07:53 【问题描述】:

我已经设置了一个 XMPP 服务器并在 android 上使用 smack 制作了一个客户端应用程序,一切正常,但我正在新手机上测试该应用程序,但它不再工作了。

Android 会终止等待消息的服务(当用户关闭应用程序时终止服务),我一直在阅读,人们说我应该使用 FCM,但我想使用自己的消息服务器,因为我添加了一些XMPP 服务器上的用户管理的特殊逻辑。我不知道我是否可以使用 FCM sdk 接收我自己的消息并从那里运行代码。

如果我别无选择,只能使用对我来说似乎很糟糕并且自动强加的 FCM,那将使用我的数据库来存储令牌(这需要我花钱),我将不得不在我的服务器上编写大量代码在当前用户管理的逻辑之上处理令牌的逻辑。

【问题讨论】:

【参考方案1】:

Oreo (Android 8) 对后台服务有限制,因此这可能就是您的服务被终止的原因。见https://developer.android.com/about/versions/oreo/background.html

为了让您的服务保持活力,您可以尝试以下操作:How to run a background service in Oreo for longer period?

【讨论】:

以上是关于消息接收的Android后台服务的主要内容,如果未能解决你的问题,请参考以下文章

android 如何实现后台时用通知栏显示有新的消息,当在前台时不显示通知

接收新的FCM消息(前台和后台)时Android应用程序崩溃

android的停止后台服务

Android 服务在应用程序处于后台时接收短信

Android:如何通过长时间运行的后台服务触发屏幕 UI 事件(例如来电屏幕)?

从后台颤振隔离向Android方法发送平台消息