我的 Value 事件侦听器可以正常工作,但是一旦我删除了 onPause
和 onStop
中的侦听器,即使在关闭它之后启动应用程序,值事件侦听器也无法正常工作。
public class Payment extends AppCompatActivity implements IppoPayListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_payment);
proceedButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
placeOrder();
}
});
}
private void placeOrder() {
cartDbRef=FirebaseInit.getDatabase().getReference().child("USERS/"+phonenumber+"/cart");
cartlistener=cartDbRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
for(DataSnapshot dataSnapshot:snapshot.getChildren()){
String segment=dataSnapshot.child("segment").getValue(String.class);
int quantity=dataSnapshot.child("userquantity").getValue(Integer.class);
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
}
@Override
public void onStop() {
super.onStop();
if (cartDbRef != null && cartlistener!=null) {
cartDbRef.removeEventListener(cartlistener);
}
}
@Override
public void onPause() {
super.onPause();
super.onStop();
if (cartDbRef != null && cartlistener != null) {
cartDbRef.removeEventListener(cartlistener);
}
}
}
编辑
当点击调用 placeOrder()
时,cartDbRef 后面的代码甚至没有执行,但是当我没有删除 onPause
和 onResume