无法接收GCM通知

时间:2016-05-13 04:59:33

标签: android json google-cloud-messaging

每当我杀死我的Android应用程序(从任务列表中删除它)时,即使优先级很高,我也无法接收GCM通知。

这是我的json数组

$fields = array(
        'registration_ids' => $registatoin_ids,
        'data' => $message,
        'priority' => "high",
        'delay_while_idle' => false,
        'time_to_live' => 86400   // time in seconds (24 hours)
    );

你看我把它的优先级设置为高。我的应用程序工作正常,我也收到了GCM通知,但只有当它在任务列表中或在后台运行时才会收到 请帮帮我。

我试图通过这个帖子

device doesn't receive notification if application is stopped

但这并没有解决我的问题。

1 个答案:

答案 0 :(得分:0)

Have look here to understand GCM Structure

Reference

即使我的应用程序已关闭,这种广播接收器也应该接收消息(不仅是我的应用程序处于后台,但即使它被强制停止)。 如果用户强制停止您的应用程序设置,您的代码将永远不会再次运行,直到手动运行您的某个组件,通常是用户手动启动活动(从Android 3.1开始)。因此,如果用户强制停止您的应用程序设置,您将不会在较新的设备/模拟器上收到GCM消息。

那么,只有当我的应用程序正在运行或在后台(但未关闭)时,我的应用程序才能接收消息(并且广播接收器中将调用onReceive()方法)是否正确? 从应用程序的角度来看,Android中没有“封闭”的概念。如果,通过“关闭”,你的意思是“没有正在运行的进程,最后一个进程正常终止”,那么是的,你应该收到GCM消息和其他广播。但是,再次强制停止并非“正常终止”。