英文:
Android Studio- Code moving ahead before calling a function
问题
我在Android Studio中调用一个名为“On Create”的函数。
类似于这样:
Log.i(TAG, "Config: On Create 00 " + getInput());
public List<Object> getInput(){
final List<Object> result = new ArrayList<>();
final DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
Query query = ref.child("Device").orderByChild("home").equalTo(homeID);
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot dataSnapshots :dataSnapshot.getChildren()){
result.add(dataSnapshots.getKey());
Log.i(TAG, "Config: get Input 2 " + result);
}
Log.i(TAG, "Config: On Create 02 " + result);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
Log.i(TAG, "Config: On Create 01 " + result);
return result;
}
生成的日志顺序让我感到困惑,我认为它不符合流程。
日志顺序如下:
日志1)Config On Create 01
日志2)Config On Create 00
日志3)Config get Input 2
日志4)Config On Create 02
我认为日志2应该在日志1之前。
我感到困惑,而且我的结果不如预期。请帮忙解决。
英文:
I am calling a function in Android Studio "On Create".
Something like this:
Log.i(TAG, "Config: On Create 00 " + getInput());
public List<Object> getInput(){
final List<Object> result = new ArrayList<>();
final DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
Query query = ref.child("Device").orderByChild("home").equalTo(homeID);
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot dataSnapshots :dataSnapshot.getChildren()){
result.add(dataSnapshots.getKey());
Log.i(TAG, "Config: get Input 2 " + result);
}
Log.i(TAG, "Config: On Create 02 " + result);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
Log.i(TAG, "Config: On Create 01 " + result);
return result;
}
The sequence of logs generated is confusing me and I believe it is not as per the flow.
The sequence is:
Log 1) Config On Create 01
Log 2) Config On Create 00
Log 3) Config get Input 2
Log 4) Config On Create 02
I believe Log 2 should come before Log 1
I am confused and also I am not getting the result as expected. Please help.
专注分享java语言的经验与见解,让所有开发者获益!
评论