首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android房间:大于1048576的DAOs

Android房间:大于1048576的DAOs
EN

Stack Overflow用户
提问于 2019-03-12 06:00:48
回答 1查看 437关注 0票数 4

我有11Mb的JSON文件,这些文件将写入Dao,但当我保存所有数据时。我得到了这个错误;

代码语言:javascript
复制
/data/user/0/com.test.save/databases/ChannelDb-wal 6946352 bytes: Bigger than 1048576; truncating

我的代码;

代码语言:javascript
复制
AppDatabase dbRoom = Room.databaseBuilder(getApplicationContext(),
        AppDatabase.class, Constants.CHANNEL_DB).build();

AndroidNetworking.get(user.getRemote())
        .setTag(Constants.GET_CHANNEL_LIST)
        .setPriority(Priority.HIGH)
        .build()
        .getAsOkHttpResponseAndParsed(new TypeToken<List<Channel>>() {
        }, new OkHttpResponseAndParsedRequestListener<List<Channel>>() {
            @Override
            public void onResponse(Response okHttpResponse, List<Channel> channels) {
                AsyncTask.execute(() -> dbRoom.channelDao().insertAll(channels));
            }

            @Override
            public void onError(ANError anError) {
                Log.d(TAG, "Check 4");
                hideProgress();
                Toast.makeText(getApplicationContext(), getResources()
                        .getString(R.string.an_error), Toast.LENGTH_LONG).show();
                Crashlytics.log(Log.DEBUG, TAG, anError.getErrorDetail());
            }
        });
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-12 06:13:44

这个WAL设置了1MB的限制,而Android上的光标窗口设置了2MB的硬限制。

因此,即使禁用WAL,您尝试实现的目标也是毫无意义的。

因为即使你设法插入了,你也无法再次检索到它。

基本上,您有两个看似合理的选择:

a)解析JSON并将其添加为单独的记录或

b)将文件保存到文件系统,并保存其路径。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55111055

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档