什么是手动处理每个单个GCM推送的正确方式?

3 浏览
0 Comments

什么是手动处理每个单个GCM推送的正确方式?

我在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推送!");
        ACNotification notification = new ACNotification(getApplicationContext(), data);
        notification.handleNotification();
    }
}

基本上,这段代码将通知数据传递给我称为ACNotification的类,然后该类读取数据并使用Notification.Builder显示通知。

当应用程序在前台运行时,这个方法运行得很完美。但是一旦用户关闭了应用程序,似乎这段代码就不再执行,但是应用程序会自动处理通知。

它仍然显示通知,但Android会自动处理。它不会设置正确的通知图标(只是使用了Android的默认ic_launcher图标)。

有没有人知道我做错了什么?我如何确保我能够自己处理每个通知?

0
0 Comments

问题:如何手动处理每个GCM推送的正确方式?

原因:在应用程序在后台运行时,Firebase的onMessageReceived方法不会被调用。因此,我们需要找到一种方法来手动处理每个GCM推送。

解决方法:从您的消息中删除通知负载。您可以参考以下链接以获取更多信息:Firebase onMessageReceived not called when app is in the background

0