一旦在Firebase中更改了子值,是否有任何方法可以阻止onCreate调用?

问题描述 投票:0回答:1

我想在Firebase中更改数据时更改文本视图中的文本。但是,我想要的结果只是TextView中的更改,但最终导致再次调用onCreate方法。那么,如何防止在数据更改时调用该方法呢?

我尝试在新线程和处理程序中运行它,但结果仍然相同。

@Override
protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_chat);
      Log.e("onCreate","oncreate");

      DatabaseReference statusRDB = FirebaseDatabase.getInstance().getReference().child("User").child(friendID).child("CurrentStatus");
        statusRDB.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                String status = dataSnapshot.child("Status").getValue().toString();
                String lastActive = dataSnapshot.child("LastActive").getValue().toString();
                mStatusText.setText(showActive.showActiveTime(status,lastActive));

            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });

}

预期的结果是,仅文本视图中的文本将被更改,而不是整个onCreate被调用并开始新的活动。

android firebase firebase-realtime-database oncreate
1个回答
0
投票

上面的sudo代码中不会再调用oncreate方法。在上面的代码中,您正在使用addListenerForSingleValueEvent,它将仅被调用一次。

© www.soinside.com 2019 - 2024. All rights reserved.