gpt4 book ai didi

android - 如何防止在另一个 Activity 中调用一个 Activity 的 addValueEventListener?

转载 作者:行者123 更新时间:2023-11-29 23:22:47 25 4
gpt4 key购买 nike

我有两个 Activity ,比如 ActivityOne.java 和 ActivityTwo.java。我正在从 ActivityOne 导航到 ActivityTwo,条件如下。

databaseReference=FirebaseDatabase.getInstance().getReference().child("users").child(UserDetails.username).child("isPlaying");
databaseReference.addValueEventListener(new com.google.firebase.database.ValueEventListener() {
@Override
public void onDataChange(com.google.firebase.database.DataSnapshot dataSnapshot)
{
if(dataSnapshot.getValue().toString().equals("false")){
Intent intent1 = new Intent(ActivityOne.this,ActivityTwo.class);
startActivity(intent1);
}else{
Toast.makeText(ActivityOne.this,"You cannot play now",Toast.LENGTH_SHORT).show();
}

}

@Override
public void onCancelled(DatabaseError databaseError) {

}
});

最初返回的值将为 false,ActivityTwo.java 将启动。现在在 ActivityTwo.java 中,我在同一个节点上进行更改,将其值更改为“true”。

final ProgressDialog pd = new ProgressDialog(NumberGuess.this);
pd.setMessage("Loading...");
pd.show();

String url = "https://couplegoals-80d0f.firebaseio.com/users.json";

StringRequest request = new StringRequest(Request.Method.GET, url, new Response.Listener<String>(){
@Override
public void onResponse(String s) {

Firebase reference = new Firebase("https://couplegoals-80d0f.firebaseio.com/users");
reference.child(UserDetails.username).child("isPlaying").setValue("true");
pd.dismiss();
}

},new Response.ErrorListener(){
@Override
public void onErrorResponse(VolleyError volleyError) {
pd.dismiss();
}
});

RequestQueue rQueue = Volley.newRequestQueue(NumberGuess.this);
rQueue.add(request);

这再次调用 ActivityOne.java 中的 addValueEventListener 并显示 toast“抱歉,您现在无法播放”,这不需要发生。当我在另一项 Activity 中时,它是如何被调用的?我该如何解决?提前致谢。

最佳答案

在将 Activity 从 ActivityOne 更改为 ActivityTwo 时,尝试放置用于删除监听器的代码。

You can remove the listener from within the callback with this code in your ActivityOne:

 @Override
protected void onDestroy() {
super.onDestroy();
ref.removeEventListener(this); //ref will be your node where you are setting Event Listener.
}

关于android - 如何防止在另一个 Activity 中调用一个 Activity 的 addValueEventListener?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53983077/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com