gpt4 book ai didi

java - 退出 Activity 时如何在 Firestore 中执行 delete() 操作?

转载 作者:行者123 更新时间:2023-11-29 22:38:39 24 4
gpt4 key购买 nike

每当我退出特定 Activity 时,我必须从 2 个集合中删除 2 个文档(没有失败)。

我在 onStop() 中写了下面的代码,但是它导致了 super.onStop 没有被调用的错误。

@Override
protected void onStop() {
db.collection("ABC").document("123").delete().addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {

db.collection("XYZ").document("123").delete().addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
progressDialog.dismiss();
MyActivity.super.onStop();
finish();
}
});
}
});
}

最佳答案

but it leads to an error for super.onStop not being called.

发生这种情况是因为您放置了以下代码行:

MyActivity.super.onStop();

在第二个 onComplete() 方法中,它具有异步行为。要解决此问题,您应该像以下代码行一样从回调中获取该行:

@Override
protected void onStop() {
MyActivity.super.onStop(); //Added outside
db.collection("ABC").document("123").delete().addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {

db.collection("XYZ").document("123").delete().addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
progressDialog.dismiss();
finish();
}
});
}
});
}

看,对 super.onStop() 的调用在两个回调之外。

关于java - 退出 Activity 时如何在 Firestore 中执行 delete() 操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59280410/

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