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) {
}
});