我正在向GCM发送一条通知给Android设备并且它正确到达,但有一种情况是在被解雇后显示通知。重现的步骤:
try:
curses.cbreak()
while True:
key = shell.getch()
if key == 119:
print("key w pressed")
sleep(0.03)
except KeyboardInterrupt:
curses.nocbreak()
有效负载的gcm消息。notification
元素,则单击它也是有效的。我的代码是Google使用action_click
提供的example中最基本的代码。只需设置权限,将服务放入清单中,然后让google显示通知。当提供的场景发生时,我在服务的GcmListenerService
中被调用两次并使用相同的数据。
这是我发送给GCM的通知负载:
onMessageReceive
修改:
{
collapseKey: 'push',
delayWhileIdle: true,
timeToLive: 3600,
data: undefined,
notification: {
body: 'test message 2 updated',
title: 'Notification',
icon: 'myicon'
},
contentAvailable: false
}
版本,但也使用了7.5 答案 0 :(得分:1)
我终于解决了这个问题。使用新的GCM实现,无需启动提供信息的服务,Google是否根据推送选项在需要时启动它。
因此,如果您的代码中包含以下内容,删除:
//This service extends GcmListenerService
Intent intent = new Intent(GCMNotificationService.class, context);
context.startService(intent);
您将停止缓存通知的问题,接收两次相同的通知和一些奇怪的其他行为。