作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
每当我退出特定 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/
我是一名优秀的程序员,十分优秀!