当前位置: 首页 > 知识库问答 >
问题:

当应用程序停止时,我如何从GCM接收通知

蓝夕
2023-03-14

如果应用程序未运行,GCMinentService(扩展GCMBasEventService)不会收到通知。

来自:http://developer.android.com/about/versions/android-3.1.html

已停止应用程序上的启动控制请注意,系统会将标志\u排除\u已停止\u包添加到所有广播意图中。它这样做是为了防止来自后台服务的广播无意或不必要地启动已停止应用程序的组件。后台服务或应用程序可以通过将标志_INCLUDE _STOPPED _PACKAGES标志添加到应允许激活已停止应用程序的广播意图来覆盖此行为。

有没有办法绕过这个设置?谢啦

共有2个答案

龚伯寅
2023-03-14

根据Francesco Nerieri在android gcm线程中的说法:

因此,如果强制停止应用,ICS的预期行为是应用无法接收消息。在JB中,这意味着GCM也将注销应用程序,这是一个不幸的行为,我们正在努力改变这一点(JB中的注销部分)。

田翰林
2023-03-14

如果应用程序未运行,GCMinentService(扩展GCMBasEventService)不会收到通知。

是的,会的。不过,剩下的问题与应用程序是否正在运行无关,而与用户之前是否运行过应用程序有关。在您引用的段落中,“stopped”一词的意思不是“notrunning”,而是表示应用程序处于以下状态:

>

  • 首次安装时,在手动调用组件之前(例如,用户启动活动)

    在用户强制停止应用程序后,直到有人手动调用组件(例如,用户启动活动)

    (我真的希望他们能想出一个比“停止”更有特色的形容词来形容这个…)

    有没有办法避开这种环境?

    没有。如果用户强制停止您的应用程序,则表示他们不希望您的应用程序以任何原因再次运行,直到他们再次手动启动它。您的目标是让用户没有理由强制停止您的应用程序。请注意,我的意思是强制停止(即,从设置中按下强制停止按钮)-普通任务管理器,或从Android 4. x中的最近任务列表中滑动,没有这种效果。

  •  类似资料:
    • 我观察到,如果应用程序从多任务托盘停止,就会出现这种情况。我该如何解决这个问题? 更新:我观察到当我从任务托盘关闭应用程序时,我的应用程序在应用程序管理器中被强制停止。而当我从任务托盘关闭Whatsapp时,它仍然没有被强制停止。WhatsApp是如何处理的?

    • 我在Android项目中使用推送通知(GCM)。 根据GCM教程,我实现了广播接收器,并将其注册到。 这种广播接收器应该接收消息,即使我的应用程序是关闭的(不仅如果我的应用程序是在后台,但即使它是强制停止)。 但它并不像我预期的那样有效<如果应用程序关闭,则不会调用code>onReceive()方法。看来我对广播接收机的理解是正确的,问题在于我对GCM的期望。 其中一个可能的原因是,如果应用程序

    • 我刚刚实现了一个GCM应用程序,它在GCM消息到达时显示通知。当消息到达时,如何启动应用程序?和viber一样。当消息到达时,你得到一个弹出框。 编辑: 非常感谢您的帮助,但我想你们大多数人都解释过需要用户单击通知才能启动应用程序。无论前台是什么应用程序,甚至当应用程序处于后台或基态时,我都需要在GCM消息到达后立即自动启动活动。 这是我的GCMIntentService代码:

    • 问题内容: 我已经在现有应用中配置了GCM,并且在那里收到了通知。现在我面临两个问题:1)我退出应用程序时未收到通知,或者应用程序在后台。2)我没有在iPhone的通知区域中收到通知,仅当我的应用程序正在运行时,我才直接在该区域接收警报消息。当我下拉通知区域时,我在xcode的控制台中收到此消息 “无法连接到GCM:操作无法完成。(com.google.gcm错误2001。)” 我的PHP文件在下

    • 我正在开发一个应用程序,它使用GCM进行推送通知。 我的问题是关于如何从用户单击通知时打开/启动应用程序。我有两种潜在的情况: A)应用程序已打开,并且驻留在前台或后台,无论哪种方式,我的GCM工作正常,GCM消息到达用户点击通知并意图启动相关活动(通过通知等待意图传递)。 b)应用程序关闭,收到通知,用户再次点击通知,并试图开始相关活动,这是它变得混乱的地方。该应用程序有一个后端,所以现在需要自

    • 我的android应用程序在关闭时没有收到任何firebase通知,当我关闭应用程序时,会被操作系统关闭。当应用程序处于前台或后台时,一切工作都很好。当应用程序在后台并且我发送了一个数据消息时,它由我的中的接收(有趣的是,它为每个消息创建并随后销毁,即)。当我终止应用程序(通过从打开的应用程序列表中滑动)时,中不再接收消息。所有的服务都被干掉了!!谁能帮帮我吗?提前道谢!