每当我杀死我的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
但这并没有解决我的问题。
答案 0 :(得分:0)
Have look here to understand GCM Structure
即使我的应用程序已关闭,这种广播接收器也应该接收消息(不仅是我的应用程序处于后台,但即使它被强制停止)。 如果用户强制停止您的应用程序设置,您的代码将永远不会再次运行,直到手动运行您的某个组件,通常是用户手动启动活动(从Android 3.1开始)。因此,如果用户强制停止您的应用程序设置,您将不会在较新的设备/模拟器上收到GCM消息。
那么,只有当我的应用程序正在运行或在后台(但未关闭)时,我的应用程序才能接收消息(并且广播接收器中将调用onReceive()方法)是否正确? 从应用程序的角度来看,Android中没有“封闭”的概念。如果,通过“关闭”,你的意思是“没有正在运行的进程,最后一个进程正常终止”,那么是的,你应该收到GCM消息和其他广播。但是,再次强制停止并非“正常终止”。