У меня есть два вида деятельности, например 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) {
}
});
Первоначально возвращаемое значение будет ложным, и будет запущен 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);
Это снова вызывает addValueEventListener в ActivityOne.java и отображает тост «Извините, вы не можете играть сейчас», что не должно происходить.Как это называется, когда я в другой деятельности?Как я могу решить это?Заранее спасибо.