【问题标题】:Google Cloud Messaging listening broadcast receiverGoogle Cloud Messaging 监听广播接收器
【发布时间】:2014-02-12 22:17:51
【问题描述】:

在我的 android 应用程序中,我正在使用 android 推送通知,一切正常,直到用户强制关闭应用程序(现在总是发生这种情况,尤其是在 Play 商店中可用的任务监控应用程序)。没有更多通知可见或可能。之后一些谷歌搜索我发现从 android 3.1 开始,如果用户强制关闭应用程序,它将停止收到任何广播的通知,直到用户不再启动你的应用程序。

是否有任何解决方案可以防止广播接收器被杀死或任何其他可能的情况(例如对设备未收到的消息进行队列并稍后发送)?

【问题讨论】:

    标签: java php android broadcastreceiver


    【解决方案1】:

    如果用户强制关闭应用程序,它将停止接收任何广播通知,直​​到用户不再启动您的应用程序。

    对不起,这不是真的。肯定的。

    我认为您对其他事情感到困惑:从 android 3.x 开始,广播接收器在应用首次启动之前永远不会对广播做出反应。

    如果您 implemented properly 您的 GCM 客户端 - 即使用户强制关闭应用程序,它也应该可以工作。这是因为如果操作系统具有正确的广播意图过滤器和接收器,它会唤醒您的应用程序,这意味着您的应用程序不必运行即可接收此广播。

    没有更多通知可见或不可能

    如果您表示未收到 GCM 是因为您没有看到任何 Notification,那么这不一定是真的 - GCM 消息与系统栏通知之间没有直接联系。确实,通常您会在收到推送时显示通知,但恭敬地不是必须的。

    我的意思基本上是 - 也许你有一个错误,在用户强制关闭你的应用程序后会生效,导致通知不显示。

    【讨论】:

    • 实际上,我正在使用谷歌云消息传递 API 提供的示例客户端进行测试,我得到了同样的结果。我真正想要的是,即使我的应用程序已关闭(非活动),当我将消息发送给所有应用程序用户时,也会出现通知
    • @Hadj Ali Oussama:正如我所说 - 应用程序状态(在后台/前台运行/关闭/强制关闭)与您没有收到推送的事实之间不应该有任何联系来自谷歌云的通知。此外 - 如果您的应用程序因任何原因接收消息失败(例如设备关闭时,或发生某些错误),则谷歌自动重试机制确保您在设备再次可用时收到它
    • 好的,那么如果有谷歌自动重试机制。你说的是真的,即使我重新启动手机并再次发送通知,我也会得到它。只有当我执行时,我才会收到发送的通知强制停止我的应用程序。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-20
    • 1970-01-01
    相关资源
    最近更新 更多