删除 Android 中的所有对象解析本地数据存储
Delete all objects in Android Parse local datastore
我的 Android 应用程序从 Parse 服务器读取数据。所有 classes 都有一个 "isDeleted" 布尔值列,用于确定对象是否被视为 "live" 并应显示在客户端设备上。
不幸的是,一位同事被要求删除 class 的两个对象,他不知道将对象标记为已删除的正确方法。相反,他硬删除了服务器上的两个对象。现在这两个 "zombie" 对象不会从本地安装中消失。
我认为我可以通过从设备中删除所有本地数据并从服务器进行完整数据刷新来解决问题。我写了一个应用程序更新,在检测到新版本号时,从本地 Parse 数据存储中取消固定所有对象并从服务器重新下载所有数据。
ParseObject.unpinAll(MyClass.CLASS_NAME);
但是这行代码并没有达到我的预期。从服务器删除的两个对象没有从客户端设备删除!
我怎样才能完全、彻底地从本地 Parse 数据存储中删除所有固定对象并使这两个 "zombie" 对象消失?
该应用正在使用最新版本的 Parse:
compile 'com.parse.bolts:bolts-tasks:1.3.0'
compile 'com.parse:parse-android:1.13.0'
compile 'com.parse:parseui-login-android:0.0.1'
compile 'com.parse:parseui-widget-android:0.0.1'
compile 'com.parse:parseinterceptors:0.0.2'
我找到了我自己的问题的解决方案。为了从本地存储中删除所有对象,我将对 ParseObject.unpinAll()
的调用替换为 ParseObject.unpinAllInBackground()
。
所以
ParseObject.unpinAll(MyClass.CLASS_NAME)
我有
ParseObject.unpinAllInBackground(new DeleteCallback() {
@Override
public void done(ParseException e) {
// ...
}
});
现在所有以前保存的对象都从本地存储中消失了。
我的 Android 应用程序从 Parse 服务器读取数据。所有 classes 都有一个 "isDeleted" 布尔值列,用于确定对象是否被视为 "live" 并应显示在客户端设备上。
不幸的是,一位同事被要求删除 class 的两个对象,他不知道将对象标记为已删除的正确方法。相反,他硬删除了服务器上的两个对象。现在这两个 "zombie" 对象不会从本地安装中消失。
我认为我可以通过从设备中删除所有本地数据并从服务器进行完整数据刷新来解决问题。我写了一个应用程序更新,在检测到新版本号时,从本地 Parse 数据存储中取消固定所有对象并从服务器重新下载所有数据。
ParseObject.unpinAll(MyClass.CLASS_NAME);
但是这行代码并没有达到我的预期。从服务器删除的两个对象没有从客户端设备删除!
我怎样才能完全、彻底地从本地 Parse 数据存储中删除所有固定对象并使这两个 "zombie" 对象消失?
该应用正在使用最新版本的 Parse:
compile 'com.parse.bolts:bolts-tasks:1.3.0'
compile 'com.parse:parse-android:1.13.0'
compile 'com.parse:parseui-login-android:0.0.1'
compile 'com.parse:parseui-widget-android:0.0.1'
compile 'com.parse:parseinterceptors:0.0.2'
我找到了我自己的问题的解决方案。为了从本地存储中删除所有对象,我将对 ParseObject.unpinAll()
的调用替换为 ParseObject.unpinAllInBackground()
。
所以
ParseObject.unpinAll(MyClass.CLASS_NAME)
我有
ParseObject.unpinAllInBackground(new DeleteCallback() {
@Override
public void done(ParseException e) {
// ...
}
});
现在所有以前保存的对象都从本地存储中消失了。