我有一个函数,它具有来自Firebase数据库的嵌套回调(onDataChange()等)。如果应用程序在所有回调执行之前停止或暂停(例如用户在从FirebaseDatabase接收dataSnapshot之前接到电话)会发生什么?剩余的回调是在后台执行还是根本不执行?
这是我的代码:
mUserOrder.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
mUserOrder.child(Integer.toString(lastOrders.get(n - 5))).addListenerForSingleValueEvent(new ValueEventListener() { //getting the orderId of the order to be removed
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
removeOrderID = (String) dataSnapshot.getValue();
mDatabaseOrder.child(removeOrderID).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
removeOrder = dataSnapshot.getValue(RequestOrder.class);
mRecycleOrdersDB.child(removeOrderID).setValue(removeOrder);
mDatabaseOrder.child(removeOrderID).removeValue();
mUserOrder.child(Integer.toString(lastOrders.get(n - 5))).removeValue();
progress.hide();
startMainActivity();
}
听众将全部执行,直到:
习惯上在onStart()期间,当活动变得可见时添加侦听器,并在活动变得不可见时在onStop()期间删除它们。