:ここ
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
//messageText.append(username + ": " + messageReceived + " \n");
Iterator iterator = dataSnapshot.getChildren().iterator();
String newmsg = null, theusername = null;
while (iterator.hasNext()){
newmsg = (String) ((DataSnapshot) iterator.next()).getValue();
theusername = (String) ((DataSnapshot) iterator.next()).getValue();
}
messageText.append(theusername + ": " + newmsg + " \n");
scrollView.postDelayed(new Runnable() {
@Override
public void run() {
scrollView.fullScroll(ScrollView.FOCUS_DOWN);
}
},200);
}
は、エミュレータの絵と私firebaseコンソールの構造である:
この
は、私は問題を抱えています一部であります
onChildAdded()
が同じ子に対して複数回呼び出されている場合、
は非常にに複数のリスナーが接続されている可能性があります。あなたのアクティビティがアクティブにならない場合は
detach the listenerにする必要があります。
// if you attach like this
var listener = ref.addChildEventListener(childEventListener);
// later detach the listener with
ref.removeEventListener(listener);
リスナーを取り外す最適な場所は、どこにアタッチしたかによって異なります。通常はペアのことを考えるのが一番です。onCreate()
- >onDestroy()
、onStart()
- >onStop()
、onResume()
- >onPause()
私はonStart()メソッドでのみこれらのonChildEventsを持っていますが、あなたのメソッドを試してみましょう –
申し訳ありませんが、私はあなたがそれを詳細に教えていただけますことを理解できません?コード賢明?ありがとうございました。 –
誰も助けてあげないでしょうか? :( –