【发布时间】:2020-01-16 10:27:13
【问题描述】:
我启动了一个活动,将一个解析对象传递给下一个活动
在下一个活动中,我进行查询并将对象列表保存为类字段变量。 我从查询结果中更改了对象的某些字段。 例如 object.putint("abc",122); // 我把它从 100 改成 122
我不会对这些修改的对象调用 save() 或任何类似方法。
现在我用后退按钮完成第二个活动并返回第一个活动。
我再次像以前一样启动第二个活动
进行查询并获取对象列表。 不是返回的对象具有与服务器不同的值。 object.getInt("abc") 返回 122,而不是 100 100 是预期值,因为已对创建的活动进行了新查询,并且未保存上次修改的 parseobject。 但是 parseobject 修改后的值即使在activity销毁后仍然保存在本地。
验证 在第二个活动的 ondestroy 中,我将对象值设置为 9999 并在重新启动该活动并查询网络日志中返回的值 (100) 与稍后通过日志打印的值不匹配。
字段不是静态的,并且本地数据存储未在使用中。
编辑:
Activity 1:
...
intent.putExtra("obj",myOrderParseObject);
startActivity...
Activity 2:
...
somequery.whereEqualTo("someField",getIntent.get...("obj");
List<Type2ParseObject> result = somequery.find();
...
result.get(0).getInt("myvalue") //return 100
result.get(0).put("myvalue",50)
finish();
Back to Activity 1:
...
intent.putExtra("obj",myOrderParseObject);
startActivity... //Again start activity
Activity 2:
//Again the same query
...
somequery.whereEqualTo("someField",getIntent.get...("obj");
List<Type2ParseObject> result = somequery.find();
...
result.get(0).getInt("myvalue") //returns 50 not 100!!!
I expected 100 as it is original server value but i got 50 which i put last time but not called any save() method.
How did the value persisted even after activity crash>
【问题讨论】:
-
"有些代码说一千多个单词" :-)
-
更新了问题。请检查
-
如果您查看数据库,在所有这些操作之后您看到的值是多少?
-
仪表板中的数据库?该应用程序一直处于离线状态,因此仪表板中看不到任何数据
标签: android parse-platform parse-server parse-android-sdk