Android 如果我只有objectID,如何删除ParseObject?
我做了Android 如果我只有objectID,如何删除ParseObject?,android,parse-platform,Android,Parse Platform,我做了findInBackground查询以获得对象列表。之后,我根据得到的结果创建自己的对象: query.findInBackground(new FindCallback<ParseObject>() { public void done(final List<ParseObject> hangOutList, ParseException e) { if (e == null) { for (
findInBackground
查询以获得对象列表。之后,我根据得到的结果创建自己的对象:
query.findInBackground(new FindCallback<ParseObject>() {
public void done(final List<ParseObject> hangOutList, ParseException e) {
if (e == null) {
for (int i = 0; i < hangOutList.size(); i++) {
String objectID= hangOutList.get(i).getObjectId();
String city = hangOutList.get(i).getString("City");
String name = hangOutList.get(i).getString("Name");
String createdBy =
hangOutList.get(i).getString("CreatedBy");
HangOut ho=new HangOut(objectID, name, city, createdBy);
hangOuts.add(ho);
}
它不起作用。有没有办法通过ID或其他方法创建解析对象
执行deleteHangout
后出现的错误:
01-18 13:41:07.659 1716-1716/com.parse.starter E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.RuntimeException: Attempted to change an objectId to one that's
already known to the Offline Store.
at com.parse.OfflineStore.updateObjectId(OfflineStore.java:598)
at com.parse.ParseObject.setObjectIdInternal(ParseObject.java:1106)
at com.parse.ParseObject.setObjectId(ParseObject.java:1094)
at com.parse.starter.HangOuts.
HangOutDetail.deleteHangout(HangOutDetail.java:61)
at com.parse.starter.HangOuts.
HangOutDetail.access$000(HangOutDetail.java:16)
at com.parse.starter.HangOuts.
HangOutDetail$1.onClick(HangOutDetail.java:54)
at android.view.View.performClick(View.java:4204)
at android.view.View$PerformClick.run(View.java:17355)
at android.os.Handler.handleCallback(Handler.java:725)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5041)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.
ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
at dalvik.system.NativeStart.main(Native Method)
注意:我希望避免对服务器进行不必要的调用。您要做的是创建一个对象,然后对刚刚创建的另一个对象调用该方法,要执行您想要的操作,您需要创建一个Parse对象而不使用deleteFinally方法,然后尝试使用deleteFinally方法,这样它会首先在本地删除该对象,即使脱机并连接后,它也会从服务器中删除该对象
ParseObject po= ParseObject.createWithoutData("HangOut", hangOut.getObjectID());
po.deleteEventually();
你可以用这个ID初始化一个新的解析对象,然后对它进行删除,不是吗?我问题的最后一部分?或请随便用例子回答这个问题。谢谢。你试过运行删除回调吗?实际上我想我犯了一个错误。我会修好的,很快告诉你。我的代码似乎正常工作,只是我的闲逛是空的,谁知道为什么。请稍等。@AIL请检查编辑,这是我在执行该方法后得到的错误。正是我所需要的!完美答案,+1。对于ParseUser.ParseUser.createWithoutData(“用户”、“id”)来说,它不起作用。如果发生故障,应采取什么措施
ParseObject po= ParseObject.createWithoutData("HangOut", hangOut.getObjectID());
po.deleteEventually();