【问题标题】:ParseObject save locally. Error: Unable to encode an unsaved parse fileParseObject 保存在本地。错误:无法对未保存的解析文件进行编码
【发布时间】:2018-04-09 19:51:51
【问题描述】:

我需要用 ParseFile 保存 ParseObject,但在本地。方法 pinInBackground 给出错误:“无法编码未保存的解析文件”

       I can not call file.saveInBackground. Because I need to use offline mode.
       So what should I do?

        //get bitmap
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        mBitmap.compress(Bitmap.CompressFormat.JPEG, 50, baos);

        byte[] data = baos.toByteArray();
        Random random = new Random();

        //create parse File
        final ParseFile file = new ParseFile(random.nextInt(10000) + ".jpeg", data);

        parseObject.put(KEY_IMAGE, file);
        parseObject.pinInBackground(new SaveCallback() {
            @Override
            public void done(ParseException e) {
                //do some action
            }
        });

【问题讨论】:

标签: android parse-platform back4app


【解决方案1】:

让我为这一切创造一个答案。

该错误确实可以告诉您应用程序出了什么问题。你不能固定不存在的东西。解析固定对象....您从未创建过对象(还)。因此,您不能固定未保存的对象。

你可以做两件事。

1) 如果没有互联网连接,向用户显示消息并告诉他们。恢复后,他们可以重试。

2) 最终使用 saveEvent。一旦互联网连接到设备,这将保存对象,然后完成后,您可以将其固定。问题是,如果对象不存在而用户想要查看它,他们就不能。

如果是我,我会选择选项 1。如果您要求用户输入文件,则需要某种连接。

【讨论】:

  • "SaveEventually" 也给了我同样的错误,所以据我所知,如果我需要放置 ParseFile,我们肯定需要互联网连接。感谢您的解释。
  • 来自 Parses github,他们说 saveEventually 会起作用。那么是的,选择选项1。我认为最好的选择。也许给这个答案加星标?谢谢.....@Bro
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-24
  • 1970-01-01
  • 2011-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多