首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android Firebase推送通知双值

Android Firebase推送通知双值
EN

Stack Overflow用户
提问于 2017-05-28 16:30:40
回答 2查看 418关注 0票数 1

大家好,我正在用Android实现Firebase推送通知。一切都很正常,除了我检索消息时,它们被复制了两次。我试了一整天的调试,但没有成功。请帮帮我!我正在使用共享首选项来存储消息。我正在通过Api和它的主题发送。

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

代码语言:javascript
复制
@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();
}

我显示消息的类是:

代码语言:javascript
复制
@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中,一旦收到消息,就会显示,但紧接着将第二条相同消息的一小部分附加到日志中。不知道是怎么回事。请帮帮忙。

EN

回答 2

Stack Overflow用户

发布于 2017-05-28 16:48:26

我不明白什么是完全复制的。İ如果你保存的是数据,可能就是你保存两次的原因。

代码语言:javascript
复制
e.commit(); 
e.apply()

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

祝好运

埃姆雷

票数 0
EN

Stack Overflow用户

发布于 2017-05-28 17:07:02

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

另外,如果您的调用意图在其他类中,请尝试将其删除。据我所知,它是通过firebase的基类自动调用的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44225275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档