gpt4 book ai didi

android - unpinAllInBackground(List<...>, Delete Callback) 后对象仍在本地存储中

转载 作者:行者123 更新时间:2023-11-30 02:16:27 26 4
gpt4 key购买 nike

我在我的 Android 应用程序中使用 Parse.com。我正在制作一个协作购物 list ,允许用户标记要删除的项目(它们变成灰色),但只有当我按下同步按钮(并且有可用网络)时,它们才会真正被删除。目前,这些对象是从解析数据库中删除的,而不是从本地数据存储中删除的。我正在尝试这个:

 ParseQuery<ShoppingItem> queryDeletes = ShoppingItem.getQuery();
queryDeletes.fromPin(MyApplication.ALL_ITEMS);
queryDeletes.whereEqualTo("isDeleted", true);
queryDeletes.findInBackground(new FindCallback<ShoppingItem>() {
@Override
public void done(final List<ShoppingItem> items, ParseException e) {
if (e == null) {
ShoppingItem.deleteAllInBackground(items, new DeleteCallback() {
@Override
public void done(ParseException e) {
if (e == null) {
ShoppingItem.unpinAllInBackground(items, new DeleteCallback() {
@Override
public void done(ParseException e) {
if (e == null) {
if (!isFinishing()) {
shoppingListAdapter.loadObjects(); // update the list view
}
}
}
});
}
}
});
}
}
});
}

已经尝试清除应用程序数据并覆盖 ShoppingItem 中的 equals() 但没有成功。有什么想法吗?

谢谢!

最佳答案

好的,所以我解决了它。据我了解,使用解析库无法实现我试图做的事情。

首先,deleteAllInBackground() 也会取消固定对象,因此不需要 unpinAllInBackground()

问题是我使用 item.pin(MyApplication.ALL_ITEMS) 固定对象,因此取消固定它们的唯一方法是使用 item.unpinInBackground(我的应用程序.ALL_ITEMS)。但是,批处理版本不允许将项目集合和引脚名称作为参数传递。因此,无法使用命名的 pin 批量取消固定项目。

我最终取消了单独传递引脚名称的对象。我最大的提示是,在没有引脚名称的情况下执行 item.unpinInBackground() 不会引发异常,因此我不知道问题出在哪里。

关于android - unpinAllInBackground(List<...>, Delete Callback) 后对象仍在本地存储中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29264245/

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