android – 如何使用ParseFile将ParseObject固定到OFFLINE中的解析本地数据存储区?

前端之家收集整理的这篇文章主要介绍了android – 如何使用ParseFile将ParseObject固定到OFFLINE中的解析本地数据存储区?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用以下代码将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();
    }

猜你在找的Android相关文章