Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.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
Java OnCompleteListener和CompletionListener之间有什么区别?_Java_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

Java OnCompleteListener和CompletionListener之间有什么区别?

Java OnCompleteListener和CompletionListener之间有什么区别?,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我正在使用实时数据库,感觉下面两种方法有点混淆: ROOT_REF.updateChildren(map, new DatabaseReference.CompletionListener() { @Override public void onComplete(@Nullable DatabaseError databaseError, @NonNull DatabaseReference databaseReference) {

我正在使用实时数据库,感觉下面两种方法有点混淆:

  ROOT_REF.updateChildren(map, new DatabaseReference.CompletionListener() {
            @Override
            public void onComplete(@Nullable DatabaseError databaseError, @NonNull DatabaseReference databaseReference) {

            }
        });

ROOT\u REF.updateChildren(map).addOnCompleteListener(新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
}
});

我想知道它们之间的区别,以及何时应该使用
CompletetionListener
OnCompleteListener

,而这两种
updateChildren()
方法做相同的事情:

将特定子键更新为指定值

数据库引用之间存在差异:

第一个返回一个
任务
对象,您可以使用它来查看工作何时完成:

添加任务完成时调用的侦听器

而第二个返回
void
。为了更新子对象并查看工作何时完成,应该将一个
DatabaseReference.CompletionListener)
对象作为第二个参数传递,该对象基本上也在做同样的事情。一旦您实现了
onComplete()
方法,您将在特定引用的工作完成时收到通知

你应该根据你比较熟悉的情况使用其中一种。我通常使用第一个,因为如果我有更多的任务需要完成,我可以使用任务的:

返回一个任务,其中包含在所有指定任务完成时成功完成的任务列表

我觉得这样更方便

        ROOT_REF.updateChildren(map).addOnCompleteListener(new OnCompleteListener<Void>() {
            @Override
            public void onComplete(@NonNull Task<Void> task) {

            }
        });