0

我一直在搜索使用以下方法离线存储图像:

Bitmap image = ...
ByteArrayOutputStream stream = new ByteArrayOutputStream();
image.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] data = stream.toByteArray();
ParseFile file = new ParseFile("image.png", data);
file.saveInBackground();

photo = new Photo();
photo.setPhotoFile(file);
photo.pinInBackground(new SaveCallback() {
   @Override
   public void done(ParseException e) {
      if (e == null) {
        Log.d("SAVED", "SAVED SUCCESSFULLY");
      } else {
        Log.d("ERROR msg is :", e.getMessage());
      }
 });          

这给出了错误:

java.lang.IllegalStateException:无法对未保存的 ParseFile 进行编码。

但是当我使用“photo.saveInBackground”时它可以工作。我在 Google 上搜索过,但找不到合适的解决方案。

4

1 回答 1

0

该方法file.saveInBackground();是异步的。一旦保存,您应该调用file.save();或实现回调以固定。photofile

于 2015-03-21T12:59:47.940 回答