取消固定后,数据将保留在本地数据存储中

时间:2014-07-02 21:34:58

标签: java android parse-platform

我无法解决问题,无法找到解决方案。 我用这种方式固定数据:

myGroup = queryGroup.getFirst();
if (myGroup != null) {
    ParseObject.unpinAllInBackground("Groups", new DeleteCallback() {
        @Override
        public void done(ParseException arg0) {
            myGroup.pinInBackground("Groups", new SaveCallback() {
                @Override
                public void done(ParseException arg0) {
                    if (arg0 != null) {
                        Toast.makeText(getApplicationContext(), "ERROR", Toast.LENGTH_SHORT).show();
                        arg0.printStackTrace();
                    }
                }
            });
        }
    });
}

并尝试解锁它:

ParseObject.unpinAllInBackground("Groups", new DeleteCallback() {
    @Override
    public void done(ParseException arg0) {
        if (arg0 == null) {
            dataDeleted();
        } else {
            arg0.printStackTrace();
        }
    }
});

但它没有抛出异常,当我开始查询时,数据仍然保存在本地。

1 个答案:

答案 0 :(得分:1)

尝试删除您的本地数据,然后重试。我有一些与钉扎相关的奇怪问题,原来我的对象没有数据固定,这搞砸了钉扎。

使用以下代码,pinallinbackground有效,您是否可以尝试而不是遍历每个对象?:

query.findInBackground(new FindCallback<ParseObject>() {

      @Override
      public void done(final List<ParseObject> moves, final com.parse.ParseException e) {
        if (e == null) {
          if (debug) {
            Log.i("bjjMoves returned:", String.valueOf(moves.size()));
          }
          ParseObject.unpinAllInBackground("bjjMoves", new DeleteCallback() {
            public void done(ParseException e) {
              // Cache the new results.
              ParseObject.pinAllInBackground("BJJMove", moves);
            }
          });

你会注意到我使用的是PinAllInBackground,而不是pininbackground。