我正在使用以下代碼從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部分。
爲此使用接口。 –
你能舉個例子嗎? –