首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >On Network call response数据存储成功,但在读取时不存在。使用SnappyDb存储数据。

On Network call response数据存储成功,但在读取时不存在。使用SnappyDb存储数据。
EN

Stack Overflow用户
提问于 2016-03-02 13:54:51
回答 1查看 84关注 0票数 1

我正在通过volley拨打网络电话。在响应成功时,我尝试通过SnappyDb存储数据,这表明它已成功存储。但是当读取任何数据时都不存在。但是如果我有数据在响应之外,那么它也会保存和读取。下面是我的代码。在过去的两天里,我一直在苦苦挣扎。我们将非常感谢您的帮助。谢谢

代码语言:javascript
复制
private void makeApiCall(String key) {
    if (Utility.isNetworkAvailable(AddCustomerActivity.this)) {
        final String finalKey = key;
        showProgressDailog("Adding...");
        NetworkEb.apiCallAddUser(customerEb, (key != null && !key.contains(":"))? true : false, new OnJsonResponse() {
            @Override
            public void onSuccess(JSONObject response) {

                try {
                    int serverId = response.getInt("id");
                    customerEb.setKey(serverId + "");
                    customerEb.setSync(true);
                    snappyDbUtil.saveObjectFromKey("customer", DbName.CUSTOMER.name(), customerEb);

                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }

            @Override
            public void onError(String response) {
                Utility.showToast("Upload failed! Try Again");
                progressDialog.dismiss();

            }
        });
    } else {
        if (key == null) {
            key = snappyDbUtil.getNewKey(DbName.CUSTOMER.name());
            customerEb.setKey(key);
            customerEb.setSync(false);
            Utility.showToast("Saved locally");

        }
        snappyDbUtil.saveObjectFromKey(key, DbName.CUSTOMER.name(), customerEb);
    }
}
EN

回答 1

Stack Overflow用户

发布于 2016-03-14 16:03:14

我找到了解决这个问题的办法。您需要通过调用此方法将数据保存在UI线程中

代码语言:javascript
复制
runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            itemDataModel.setKey("ITEMS:" + key);
                            itemDataModel.setSync(true);
                            snappyDbUtil.saveObjectFromKey(itemDataModel.getKey(), DbName.ITEMS.name(), itemDataModel);
                        }
                    });

在这里,您还必须注意要用来存储的键,只有当我们提供一个db名称时才能保存,如上面的代码所示。

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

https://stackoverflow.com/questions/35739525

复制
相关文章

相似问题

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