加载数据后,停止从Firebase检索数据。
这是我的代码:
databaseReference.child("SHARE").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot ds : dataSnapshot.getChildren()) {
information spacecraft = ds.getValue(information.class);
spacecrafts.add(spacecraft);
}
adapter adapterView= new adapter(MainActivity.this, spacecrafts);
gridView.setAdapter(adapterView);
}
}
发布于 2018-01-04 13:10:45
如果您想一次读取整个数据,请使用addListenerForSingleValueEvent而不是addValueEventListener。
或者,如果您想从onDataChange获取更新,您可以删除侦听器,
ValueEventListener eventListener = databaseReference.child("SHARE").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot ds : dataSnapshot.getChildren()) {
information spacecraft = ds.getValue(information.class);
spacecrafts.add(spacecraft);
}
adapter adapterView= new adapter(MainActivity.this, spacecrafts);
gridView.setAdapter(adapterView);
}
要删除监听程序,请执行以下操作:
databaseReference.child("SHARE").removeEventListener(eventListener);
发布于 2018-01-04 13:32:54
使用addListenerForSingleValueEvent()
databaseReference.child("SHARE").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot ds : dataSnapshot.getChildren()) {
information spacecraft = ds.getValue(information.class);
spacecrafts.add(spacecraft);
}
adapter adapterView= new adapter(MainActivity.this, spacecrafts);
gridView.setAdapter(adapterView);
}
https://stackoverflow.com/questions/48084824
复制相似问题