Как я могу улучшить хранение и загрузку моего StringArray? - PullRequest
0 голосов
/ 28 июня 2018

На самом деле в моем приложении я выполняю некоторые сложные операции, загружая код HTML-страницы, форматируя его и извлекая некоторые конкретные данные со страницы, после чего я сохраняю все различные данные в массиве String.

После сохранения данных в массиве я сохраняю их в sharedPreferences с использованием Json для элементов Array, но я не уверен, что это лучший выбор, есть ли какая-либо другая операция, которую я могу сделать вместо этого, чтобы сохранить и загрузить данные быстрее?

PS: я бы не использовал ни одну базу данных в качестве Room или SQlite.

вот мой код для сохранения и загрузки данных:

private void saveDataTasti(){

    SharedPreferences sharedPreferences = getSharedPreferences("TASTI_SAVE", MODE_PRIVATE);
    SharedPreferences.Editor editor = sharedPreferences.edit();
    Gson gson = new Gson();
    String json = gson.toJson(items);
    editor.putString("tasti list", json);
    editor.apply();

}


private void loadDataTasti() {
    new ArrayList<Item>();
    SharedPreferences sharedPreferences = getSharedPreferences("TASTI_SAVE", MODE_PRIVATE);
    Gson gson = new Gson();
    String json = sharedPreferences.getString("tasti list", null);
    Type type = new TypeToken<ArrayList<Item>>() {
    }.getType();
    items = gson.fromJson(json, type);
}

1 Ответ

0 голосов
/ 28 июня 2018

Shared Preference хранит вещи внутри как только файлы. Таким образом, получение данных из него будет медленным по сравнению с базой данных. Кроме того, сохраненные данные являются строкой json, что добавляет дополнительный уровень сложности с точки зрения производительности. Offcourse Использование SQlite / Room является идеальным выбором, и вы легко сможете получить котельную плиту, если будете ее искать. Однако, поскольку вы не хотите использовать эти утилиты, если ваши данные, которые вы получаете от сервера, не часто меняются, вы можете включить в него кэширование на уровне представления.

Просмотр кэширования

...