手动处理每个 GCM 推送的正确方法是什么?
What is the proper way to manually handle every single GCM push?
我的 Android GCM 实施遇到了一个奇怪的问题。
这是我处理 GCM 通知的代码:
public class GCMMessageHandler extends GcmListenerService {
@Override
public void onMessageReceived(String from, Bundle data) {
super.onMessageReceived(from, data);
Log.i(this.getClass().getSimpleName(), "GCM push received!");
ACNotification notification = new ACNotification(getApplicationContext(), data);
notification.handleNotification();
}
}
基本上,它的作用是将通知数据传递给名为 ACNotification
的 class,然后后者读取数据并使用 Notification.Builder
.
显示通知
当应用程序在前台时,这非常有效。但是一旦用户关闭应用程序,这段代码似乎永远不会执行,但应用程序会以某种方式自行处理通知。
它仍然会显示通知,但 Android 会自行显示。它没有设置正确的通知图标(它只使用 Android stock ic_launcher 图标)。
知道我做错了什么吗?我如何确保自己能够处理每条通知?
从您的消息中删除通知负载。
看看吧:
我的 Android GCM 实施遇到了一个奇怪的问题。
这是我处理 GCM 通知的代码:
public class GCMMessageHandler extends GcmListenerService {
@Override
public void onMessageReceived(String from, Bundle data) {
super.onMessageReceived(from, data);
Log.i(this.getClass().getSimpleName(), "GCM push received!");
ACNotification notification = new ACNotification(getApplicationContext(), data);
notification.handleNotification();
}
}
基本上,它的作用是将通知数据传递给名为 ACNotification
的 class,然后后者读取数据并使用 Notification.Builder
.
当应用程序在前台时,这非常有效。但是一旦用户关闭应用程序,这段代码似乎永远不会执行,但应用程序会以某种方式自行处理通知。
它仍然会显示通知,但 Android 会自行显示。它没有设置正确的通知图标(它只使用 Android stock ic_launcher 图标)。
知道我做错了什么吗?我如何确保自己能够处理每条通知?
从您的消息中删除通知负载。
看看吧: