Android Firebase推送通知双值

时间:2017-05-28 08:30:40

标签: android firebase push-notification firebase-cloud-messaging

大家好我在Android中实施Firebase推送通知。一切都工作正常,除非我正在检索邮件,它们被复制两次。我试了整整一天,但没能成功。请帮帮我! 我使用共享首选项来存储邮件。我正在通过Api及其主题发送。

下面是myFirebaseMessagingService类的onMessageReceived()方法代码

@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
    Log.d(TAG, "From: " + remoteMessage.getFrom());

    if (remoteMessage.getData().size() > 0) {
      Log.d(TAG, "Message data payload: " + remoteMessage.getData());
    }

    String message = remoteMessage.getData().get("message");

    SharedPreferences sp = getSharedPreferences("mypreference", Context.MODE_PRIVATE);
    String prev = sp.getString("msg", "-");
    String newp;
    if(prev != "-"){
      newp = prev+","+messageBody;
    }else{
      newp = messageBody;
    }

   Log.d("prev123",prev);

   SharedPreferences.Editor e = sp.edit();
   e.putString("msg",newp);
   Log.d("afterstore", newp);
   e.commit();
   e.apply();
}

我正在显示该消息的类是:

@Override
public void onResume() {
 super.onResume();
 String msg = sp.getString("msg", null);
 Log.d("message", msg);
 String[] pqrs = msg.split(",");

 Log.d("Array msg",pqrs);

 ArrayAdapter<String> adp = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,android.R.id.text1,pqrs);
 listView.setAdapter(adp);

在收到Log的消息中,它会显示但只是在第二个相同消息的一小部分附加到日志之后。不知道怎么做。请帮忙。

2 个答案:

答案 0 :(得分:0)

我不知道它究竟是什么重复。如果您保存的数据可能是您保存两次的原因。

e.commit(); 
e.apply()

只需使用其中一个。与异步或同步不同,它们执行相同的操作。

祝你好运

埃姆雷

答案 1 :(得分:0)

删除提交行后是否清除了应用程序数据?您可以在修复后使用旧的重复数据进行测试吗?

此外,如果您在其他课程中的调用意图,请尝试删除它。据我所知,它是由firebase的基类自动调用的。