我使用以下代码将ParSEObject与ParseFile一起存储.我在Application子类中启用了Parse本地数据存储区.当应用程序连接到Internet时,此代码将ParSEObject的实例存储在本地数据存储区和解析服务器中.
final ParseFile file = new ParseFile(position + ".mp4",data); file.saveInBackground(new SaveCallback() { @Override public void done(ParseException e) { ParSEObject po = new ParSEObject("Recordings"); po.put("code",position); po.put("name",myname); po.put("file",file); po.saveEventually(); } });
当应用未连接到互联网时,相同的代码会抛出以下异常. java.lang.IllegalStateException:无法编码未保存的ParseFile.应用程序崩溃了.对象未存储在本地数据存储中.
那么当没有互联网时,如何在解析本地数据存储区中存储带有ParseFile的ParSEObject?
解决方法
我通过简单地用ParSEObject存储文件的字节来解决这个问题.当我想要我的文件时,我将这些字节写回文件.
我的要求是在解析中存储带有名字的录音文件.
我按照以下步骤操作:
1.获取文件的字节数组
2.将字节数组放入ParSEObject
3.调用ParSEObject#saveEventually()
码:
File file = new File(filePath); FileInputStream fis = null; try { fis = new FileInputStream(file); byte data[] = new byte[(int) file.length()]; fis.read(data); ParSEObject obj = new ParSEObject("Recordings"); obj.put("name",name); obj.put("data",data); obj.saveEventually(); } catch (IOException e) { e.printstacktrace(); }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。