gpt4 book ai didi

java - 存储 arraylist sharedpreferences android

转载 作者:行者123 更新时间:2023-11-30 00:54:11 25 4
gpt4 key购买 nike

Sharedpreferences 中存储包含太多项目的 String 列表是个好主意吗?它会影响应用性能吗?

我这样做是为了存储:

public boolean saveArray(List<String> contacts) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(_context);
SharedPreferences.Editor editor = sp.edit();
editor.putInt("Status_size", contacts.size());
for (int i = 0; i < contacts.size(); i++) {
editor.remove("Status_" + i);
editor.putString("Status_" + i, contacts.get(i));
}
return editor.commit();
}

阅读:

public void loadArray(Context context) {
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
_validContactsPhones.clear();
int size = sharedPreferences.getInt("Status_size", 0);
for (int i = 0; i < size; i++) {
_validContactsPhones.add(sharedPreferences.getString("Status_" + i, null));
}
}

最佳答案

不,在 SharedPreference 中存储一个巨大的 String 列表不是一个好主意。

应用程序中存储的 SharedPreference 没有特定的大小限制,因为它存储在 /data/data/[package name]/shared_prefs/[app name].xml。由于 SharedPreferences 存储在 XML 文件中,因此它缺乏 SQLite 强大的事务支持。因此我建议将这种数据存储在 SQLite 数据库中。

另一件需要记住的事情是,我知道的最小大小限制是您的可用堆空间量,因为 SharedPreferences 会将整个 XML 文件的内容读入内存。

答案大部分抄自here .

关于java - 存储 arraylist sharedpreferences android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40448516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com