【发布时间】:2017-05-01 02:36:06
【问题描述】:
我是 firebase 新手,我想在从 firebase 获取数据时显示进度对话框。我已经实现了这一点,但问题是当获取时发生一些网络错误时我无法关闭对话框。我知道当从firebase加载数据时调用OnDataChange方法而没有错误但是如果发生一些错误怎么办。那么调用哪个方法呢?
View view = inflater.inflate(R.layout.fragment_stories, container, false);
recyclerView = (RecyclerView) view.findViewById(R.id.recycler_view);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
showProgressDialog("Please Wait...");
firebaseDatabase = FirebaseDatabase.getInstance();
databaseReference = firebaseDatabase.getReference("content");
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Log.d(TAG,"On Data Change");
if(mProgressDialog != null){
mProgressDialog.dismissWithAnimation();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.d(TAG,"On Cancelled");
if(mProgressDialog != null){
mProgressDialog.dismissWithAnimation();
}
}
});
【问题讨论】:
-
不是出现网络错误,甚至连valueEventListener的onCancelled()都没有被调用。我尝试使用扩展 AsyncTask 的类对象在其 doInBackground() 中显示进度对话框,但即使我更改了数据库引用,它也只能帮助我检索一次数据。如果我不使用此类的对象,我不知道如何显示进度对话框,直到从数据库中检索到我的数据,但它工作正常。阻碍我的问题是如何在不使用 AsyncTask. 的情况下显示从 firebase 数据库中检索数据的进度对话框
标签: android firebase firebase-realtime-database