如何在粘滞模式下启动FirebaseMessagingService



我正在向FirebaseMessaging接收器发送仅限数据的消息,但当应用程序被终止(从托盘中滑动(时,它将停止接收消息。我一直在想办法让它像Whatsapp一样一直在听。根据这个答案,我必须让它在粘性模式下启动。我现在如何启动我的服务只是简单地将其添加到清单中。

<service
android:name=".MyFirebaseMessagingService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>

我如何在粘性模式下启动?

简单的答案是你不能。你发现的答案是8年前的,与Firebase无关——它只是指启动一项粘性的常规服务。Firebase有自己的服务作为库的一部分,您无法更改它的启动方式。

你的第二个问题是,在过去的几个API版本中,谷歌系统地取消了应用程序始终在后台运行的能力,尽管这里描述了一些棘手的解决方法。

最后,他们明确表示不希望应用程序能够";唤醒";如果用户有意关闭它(比如从最近的应用程序列表中删除它(。

说了这么多,你实际上不需要让你的应用程序在后台运行。FCM通知是专门为处理这类情况而设计的。我猜你只是用错了。您需要设置FCM通知以显示给用户(而不是隐藏(,当用户打开该通知时,它将";唤醒";您的应用程序。在您的清单中,将以下内容添加到您的申请中:

<application
...
<meta-data
android:name="com.google.firebase.messaging.default_notification_channel_id"
android:value="@string/notification_channel_name" />
...
</application>

您还需要创建一个专用的通知通道,在我的示例中,@string/notification_channel_name就是指它

相关内容

  • 没有找到相关文章

最新更新