android - 如何在收到消息时启动 Activity ,即使应用已死(滑动)?

标签 android firebase broadcastreceiver firebase-cloud-messaging

在我的应用程序中,我需要使用自定义调用类型屏幕通知用户,他必须在该屏幕上响应重要的业务决策,该决策非常重要,以至于他不介意它可能导致的糟糕用户体验。

我使用 FCM 数据消息,但当应用从 6.0 以下设备的当前应用列表中滑出时,不会触发 onRecieve 方法。

现在我正在使用启动广播监听器来监听接收到的消息的服务,应用程序在其前景/背景时按预期工作,但一旦它被刷出,服务会随着应用程序被终止而停止,但在 6.0 以上的设备中应用程序不会被滑动杀死,这是我到目前为止的观察。

基本上,我正在寻找的是一种即使您的应用程序被刷掉也可以运行的服务。我知道 START_STICKY 事情,但没有帮助。请帮助我。

最佳答案

您应该只按照文档中的描述实现 FCM,并且每次数据消息到达时都应该调用 onMessageReceived()(即使应用程序被终止或滑动)。

如果应用在滑动时没有收到消息,则表示您的设备安装了非标准版本的 Android

不幸的是,在这些设备上,这不是您的应用会遇到的唯一问题。

我的建议是联系制造商并向他们解释他们的定制正在破坏 Android API。

更多信息: Push notifications using FCM not received when app is killed android

关于android - 如何在收到消息时启动 Activity ,即使应用已死(滑动)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44715738/

相关文章:

java - 手动终止应用程序时如何获取广播接收器?

android - 使用 Play 服务 gcm 时如何减小 apk 大小

java - Glide 库加载 GIF 很慢

android - 从广播接收器调用电话时出现上下文错误

java - 从广播接收器更新 Activity UI 组件?

iphone - 谷歌地图 api 的替代品

android - 在 Android/iOS 应用程序中显示 PDF

javascript - 我的 Firestore 中有超过 50,000 个文档,排序和查找的时间超过 30 秒,限制为 50 个。如何加快速度?

node.js - 在 Firebase CLI 中激活 Google Speech API?

android - 如何在没有 Activity 的情况下在android中启动服务