【问题标题】:How to manage shared preference, it take too long time to edit when shared preference have store large data?如何管理共享偏好,共享偏好存储大数据时编辑时间太长?
【发布时间】:2016-07-20 02:48:28
【问题描述】:

问题:如何管理共享偏好,共享偏好存储大数据时编辑时间太长?

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

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

【问题讨论】:

  • 为什么要在共享首选项中存储大量数据?
  • 我有一个应用程序,其中数据经常更改并传播到其他活动。我需要可以轻松获取数据并经常修改数据的存储空间。

标签: android


【解决方案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

【讨论】:

  • 我会测试一下。谢谢。
  • @statosdotcom 不客气!我希望这个对你有用。如果您需要更多帮助,请告诉我!
【解决方案2】:

我的看法。如果您确实需要存储大量数据,您应该考虑将 SQLite 用于共享首选项推荐使用(对我而言)应该只用于缓存应用设置等小值。

【讨论】:

    猜你喜欢
    • 2012-05-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-29
    • 2019-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多