ParseObject save locally. Error: Unable to encode an unsaved parse file
ParseObject save locally. Error: Unable to encode an unsaved parse file
我需要使用 ParseFile 保存 ParseObject,但要保存在本地。方法 pinInBackground 给出错误:"Unable to encode an unsaved parse file"
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
}
});
让我为所有这些创建一个答案。
该错误确实告诉您应用程序出了什么问题。你不能固定不存在的东西。解析引脚对象......你从未创建过一个对象(还)。因此,您无法固定未保存的对象。
你可以做两件事。
1) 如果没有互联网连接,向用户显示消息并告诉他们。恢复后,他们可以重试。
2) 使用 saveEventually。一旦互联网连接到设备,这将保存对象,完成后,您可以固定它。问题是,如果对象不存在而用户想看到它,他们就做不到。
如果是我,我会选择选项 1。如果您要求用户输入文件,则需要某种连接。
我需要使用 ParseFile 保存 ParseObject,但要保存在本地。方法 pinInBackground 给出错误:"Unable to encode an unsaved parse file"
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
}
});
让我为所有这些创建一个答案。
该错误确实告诉您应用程序出了什么问题。你不能固定不存在的东西。解析引脚对象......你从未创建过一个对象(还)。因此,您无法固定未保存的对象。
你可以做两件事。
1) 如果没有互联网连接,向用户显示消息并告诉他们。恢复后,他们可以重试。
2) 使用 saveEventually。一旦互联网连接到设备,这将保存对象,完成后,您可以固定它。问题是,如果对象不存在而用户想看到它,他们就做不到。
如果是我,我会选择选项 1。如果您要求用户输入文件,则需要某种连接。