我一直在搜索离线存储图像,使用:
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.IollegalStateException:无法对未保存的ParseFile进行编码。
但当我使用"photo.saveInBackground"时,它是有效的。我在谷歌上搜索过,但找不到合适的解决方案。
方法file.saveInBackground();
是异步的。一旦保存了file
,您应该调用file.save();
或实现回调来固定photo
。