繁体   English   中英

我可以使用带有房间数据库库的资产文件中的预构建 SQLite 数据库吗?

[英]Can I use a pre-build SQLite Database from assets file with room database library?

我正在构建一个启动器应用程序。 在该应用程序中,一些应用程序(包名称、图标)将预先添加到 SQLite 中,以后用户可以在 SQLite 数据库中添加更多应用程序(包名称、图标),并实时更新数据。 我想使用房间数据库。

所以,我的问题是,我可以使用带有房间数据库库的资产文件中的预构建 SQLite 数据库吗?

请帮我。

您可以将 json 文件与应用程序捆绑在一起。 然后像这样读

 try {
        InputStream inputStream = mContext.getAssets().open(mContext.getPackageName() + ".json");

        int size = inputStream.available();
        byte[] buffer = new byte[size];

        if (inputStream.read(buffer) != size) {
            throw new IndexOutOfBoundsException();
        }
        inputStream.close();

        JSONObject jsonObject = new JSONObject(new String(buffer, StandardCharsets.UTF_8));

        List<SomeClass> classList = new ArrayList<>();
        JSONArray jsonElements = jsonObject.getJSONArray("dataset1");
        for(int i =0; i < jsonElements.length(); i++){
            SomeClass someClass = new SomeClass(jsonElements.get(i));
            classList.add(someClass);
        }

        appDatabase.insert(classList);
        } catch(Exception exception){
        }

那将是手动的方式。 但是,您可以通过以下方式构建备份/恢复并仅使用恢复端: 备份/恢复房间数据库

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM