gpt4 book ai didi

java - OnCompleteListener 和 CompletionListener 之间有什么区别?

转载 作者:行者123 更新时间:2023-11-29 22:53:36 26 4
gpt4 key购买 nike

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

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

}
});

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

}
});

我想知道它们之间的区别以及我们什么时候应该使用CompletetionListenerOnCompleteListener

最佳答案

同时 updateChildren()方法做同样的事情:

Update the specific child keys to the specified values.

DatabaseReference 之间有区别:

updateChildren(Map update)

updateChildren(Map update, DatabaseReference.CompletionListener listener)

是第一个返回 Task<Void>对象,你可以使用 addOnCompleteListener查看工作何时完成:

Adds a listener that is called when the Task completes.

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

您应该根据自己的习惯使用其中一种。我通常使用第一个,因为万一我有更多任务需要完成,我可以使用 Tasks 的 whenAllComplete(Task... tasks) :

Returns a Task with a list of Tasks that completes successfully when all of the specified Tasks complete.

而且我发现它更方便。

关于java - OnCompleteListener 和 CompletionListener 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57647578/

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