我怀疑当我使用时是否真的有必要调用.addOnCompleteListenersetPersistence(true)
当我使用时,如果我的互联网离线,屏幕会继续加载,因为永远不会结束 - 等待连接。因此,我无法离线添加任何内容,因为加载屏幕正在等待连接(打破了持久性的概念)。addOnCompleteListeneraddOnCompleteListener
下面的示例显示了我在说什么:
getDatabaseReference()
.child("Example")
.child(userID)
.push()
.setValue(dataExample)
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()){
//interface call with success response
interface.onSuccess();
}else {
//interface call with failure response
interface.onFailure(task.getException().getMessage());
}
}
});
因此,正如我所说,如果我的互联网离线,我无法完成操作,加载屏幕将永远保持加载状态(等待完成列表)。
我发现,如果没有,我可以在离线时添加和删除值,因为它们在缓存中,所以当我有互联网时,应用程序会在线将更新发送到数据库 - 这太棒了。addOnCompleteListener
下面的例子显示了我的建议:
getDatabaseReference()
.child("Example")
.child(userID)
.push()
.setValue(dataExample);
//interface call with successful response without handling error (because it won't happen)
interface.onSuccess();
所以,我的问题是,这样做是对的吗?这是一个好习惯?没有 ,并保持能够离线使用我的应用程序,仅在能够发送更新时?addOnCompleteListener
呼啦一阵风
相关分类