Я использую SharedPreferences для сохранения JSONArray, а затем использую его, когда у меня нет подключения к Интернету. Я должен проверить размер сохраненных данных, потому что я не хочу больших данных. Я использую для этого ясный метод, но я хочу быть уверенным в этом с контролем размера. Мои функции для экономии & loading & очистить;Как получить размер данных SharedPreferences, возможно ли это?
public static void saveJSONArray(Context c, String prefName, String key, JSONArray array) {
SharedPreferences settings = c.getSharedPreferences(prefName, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putString(key, array.toString());
editor.commit();
}
public static JSONArray loadJSONArray(Context c, String prefName, String key) throws JSONException {
SharedPreferences settings = c.getSharedPreferences(prefName, 0);
return new JSONArray(settings.getString(key, ""));
}
public static void clearPrefs(Context c, String prefName){
SharedPreferences settings = c.getSharedPreferences(prefName, 0);
SharedPreferences.Editor editor = settings.edit();
editor.clear();
editor.commit();
}
Эти функции работают правильно. Нет проблем. Но мне нужна еще одна функция, которая возвращает размер всех данных. Я исследовал его, но не нашел решения. Заранее спасибо.
вы не должны кэшировать данные, используя «SharedPreferences», вы должны кэшировать их с помощью файлов в каталоге кеша приложений! –
Какие файлы? Дайте мне больше информации об этом, пожалуйста? @MoshErsan –
«Какие файлы?» - поскольку у вас есть JSON, можно предположить, что файл JSON был бы уместным. – CommonsWare