如何管理共享首选项,共享首选项存储大数据时需要花费太长时间进行编辑?

时间:2016-07-20 02:48:29

标签: android

问题:如何管理共享首选项,当共享首选项存储大数据时,编辑需要很长时间?

当我将活动数据(如列表数据)存储在共享首选项中时。当我调用编辑器编辑共享首选项中的某些东西时。编辑需要很长时间。

如何在共享首选项中管理大数据。

2 个答案:

答案 0 :(得分:1)

在SharedPreferences中管理大量数据的最佳方法是创建一个“Helper”类,其中包含许多方法来获取/设置SharedPreferences中的值。例如:

package com.example.your_app.helpers;


import android.content.Context;
import android.content.SharedPreferences;
import android.util.Log;

import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.toolbox.Volley;

import org.json.JSONException;
import org.json.JSONObject;

public class AssetLoader {
    private static SharedPreferences prefs;
    private static Context context1;

    public static void load(Context context) {
        context1 = context;
        // Prefs
        prefs = context.getSharedPreferences("YourApp", Context.MODE_PRIVATE);
    }

    public static void setTotalLocations(int totalLocations) {
        prefs.edit().putInt("totalLocations", totalLocations).apply();
    }

    public static Integer getTotalLocations() {
        if(prefs != null) {
            return prefs.getInt("totalLocations", 1);
        } else {
            return -1;
        }
    }

    public static void setItemName(String id, String name) {
        prefs.edit().putString(gid, name).apply();
    }

    public static String getItemName(String id) {
        return prefs.getString(id, "");
    }
}

此代码只是从我的某个应用中复制/粘贴。它有一个load()方法,您需要在应用程序启动时调用该方法,该方法可用于加载任何必要的内容。其他所有内容都可以采用getter / setter方法,如示例setItemNamegetItemName

答案 1 :(得分:0)

我看到这个的方式。如果你真的需要存储大数据,你应该考虑使用SQLite进行共享偏好推荐使用(对我而言)应该仅适用于缓存应用程序设置之类的小值。