我正在使用以下代码从Firebase数据库中获取数据,但因为它在后台线程中发出网络请求,所以我想等到它完成请求并获取值。例如,所以我想等到变量isAvailable
从数据库中获得的值,那么进一步的执行将发生如何检测ValueEventListener是否已在Firebase中获取数据
boolean isAvailable=false;
usernameReference.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
isAvailable = true;
}
@Override
public void onCancelled(DatabaseError databaseError) {
progressBar.setVisibility(View.GONE);
}
});
if(isAvailable){
//do something here
}
else{
//do something here
}
这段代码总是执行else部分。
为此使用接口。 –
你能举个例子吗? –