Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android中绕过Firebase数据库刷新_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

如何在Android中绕过Firebase数据库刷新

如何在Android中绕过Firebase数据库刷新,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,当我当前处于其他活动时,如果我的数据库更改,请将我的应用程序转到列表视图页面,如下所示: 我想知道如何在当前未查看该活动时停止刷新数据 操作码 DatabaseReference myRef = FirebaseDatabase.getInstance().getReference().child("new"); myRef.addValueEventListener(new ValueEventListener() { @Override public

当我当前处于其他活动时,如果我的数据库更改,请将我的应用程序转到列表视图页面,如下所示:

我想知道如何在当前未查看该活动时停止刷新数据 操作码

 DatabaseReference myRef = FirebaseDatabase.getInstance().getReference().child("new");
    myRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            // This method is called once with the initial value and again
            // whenever data at this location is updated.
            //   Object key = dataSnapshot.getValue();
            if (dataSnapshot.hasChild(ch) ) {
                Map<String ,Object> key = (Map<String, Object>) dataSnapshot.child(ch).getValue();
                sname = (String) key.get("sname");
             //   Log.v("ABCD ", "Value is: " + key.get("sname"));
                if(dataSnapshot.getValue() != null)
                {
                    Intent intent = new Intent("com.example.sunny.new.Selectclass");
                    startActivity(intent);
                    finish();
                }
            }  else{

                AlertDialog.Builder builder1 = new AlertDialog.Builder(MainActivity.this);
                builder1.setMessage("Check your Code");
                builder1.setCancelable(true);

                builder1.setPositiveButton(
                        "Ok",
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int id) {
                                dialog.cancel();
                            }
                        });

                AlertDialog alert11 = builder1.create();
                alert11.show();
            }


        }

        @Override
        public void onCancelled(DatabaseError error) {
            // Failed to read value
            Log.v("XYZ", "Failed to read value.", error.toException());
        }
    });
DatabaseReference myRef=FirebaseDatabase.getInstance().getReference().child(“新”);
myRef.addValueEventListener(新的ValueEventListener(){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
//使用初始值调用此方法一次,然后再次调用
//每当更新此位置的数据时。
//对象键=dataSnapshot.getValue();
if(dataSnapshot.hasChild(ch)){
Map key=(Map)dataSnapshot.child(ch.getValue();
sname=(String)key.get(“sname”);
//Log.v(“ABCD”,“值为:”+key.get(“sname”);
if(dataSnapshot.getValue()!=null)
{
Intent Intent=newintent(“com.example.sunny.new.Selectclass”);
星触觉(意向);
完成();
}
}否则{
AlertDialog.Builder builder1=新建AlertDialog.Builder(MainActivity.this);
builder1.setMessage(“检查代码”);
builder1.setCancelable(true);
builder1.setPositiveButton(
“好的”,
新建DialogInterface.OnClickListener(){
public void onClick(DialogInterface对话框,int-id){
dialog.cancel();
}
});
AlertDialog alert11=builder1.create();
alert11.show();
}
}
@凌驾
已取消的公共无效(DatabaseError错误){
//无法读取值
Log.v(“XYZ”,“读取值失败”,error.toException());
}
});

在活动的
onPause
方法中,删除事件侦听器。并将其添加到
onResume
方法中

详细信息:

DatabaseReference
ValueEventListener
定义为可访问变量,因为您将在
onPause
onResume
方法中引用它们:

ValueEventListener myValueEventListner;
DatabaseReference myRef;

// Below may be inside onCreate method:
myRef = FirebaseDatabase.getInstance().getReference().child("new");
myValueEventListner= new ValueEventListener() {
    // your event listener logic here
};
在onPause和onResume方法中添加和删除:

@Override
public void onResume() {
     super.onResume();
     myRef.addValueEventListener(myValueEventListner);
}

@Override
public void onPause() {
    super.onPause();
    myRef.removeEventListener(myValueEventListner);
}  

在活动的
onPause
方法中,删除事件侦听器。并将其添加到
onResume
方法中

详细信息:

DatabaseReference
ValueEventListener
定义为可访问变量,因为您将在
onPause
onResume
方法中引用它们:

ValueEventListener myValueEventListner;
DatabaseReference myRef;

// Below may be inside onCreate method:
myRef = FirebaseDatabase.getInstance().getReference().child("new");
myValueEventListner= new ValueEventListener() {
    // your event listener logic here
};
在onPause和onResume方法中添加和删除:

@Override
public void onResume() {
     super.onResume();
     myRef.addValueEventListener(myValueEventListner);
}

@Override
public void onPause() {
    super.onPause();
    myRef.removeEventListener(myValueEventListner);
}  

假设我的应用程序有3个屏幕[screen1->screen2->screen3],如果我在screen3并且正在进行firebase数据库更新,那么我的应用程序会自动移动到screen1,如果您想在screen3并更新数据库时打开screen1;您还应该在screen3上收听数据库更新。这实际上是发生的事情,我不想这样,我该如何防止this@ghost当你不想刷新更改时,为什么不删除VentListener?当我在screen1或任何其他屏幕上时,我需要该监听器,这就是为什么我的应用程序有3个屏幕[screen1->screen2->screen3]如果我在screen3上并且正在进行firebase数据库更新,那么当您在screen3上并且数据库更新时,如果您想打开screen1,我的应用程序将自动移动到screen1;您还应该在screen3上收听数据库更新。这实际上是发生的事情,我不想这样,我该如何防止this@ghost当你不想刷新更改时,为什么不删除VentListener?当我在screen1或任何其他屏幕上时,我需要那个监听器,这就是为什么