【发布时间】:2017-05-28 08:30:40
【问题描述】:
大家好,我正在 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);
在日志中,一旦收到消息,它就会显示,但在第二条相同消息的一小部分被附加到日志之后。不知道怎么样。请帮忙。
【问题讨论】:
-
只是一个想法,不要在 onResume() 上进行检索,在 onCreate() 上进行,看看会发生什么。
-
请发布您关于 firebase 的其他课程
-
嗨@msh.nayan 我也试过了,问题仍然存在
-
@EmreAkturk 我不认为其他类是相关的。
-
在 onMessageReceived() 上接收数据并在 Shared Preference 上存储这些数据后并提交它;您可以立即检索数据以验证何时存储双数据
标签: android firebase push-notification firebase-cloud-messaging