Кеширование строки в Андроид

166
25 августа 2018, 01:30

Всем привет. С сервера приходит json с данными. Может быть очень большая строка. Мне нужно при каждой загрузки сохранять эти строки чтобы после если подключения к интернету нет выводились последние сохраненные публикации. Как бы вы поступили на моем месте? Как бы вы сохраняли?

Answer 1

Можно использовать okhttp3.Cache при работе через Retrofit. Пример запроса с кэшированием:

    private void loadJSON() {
    HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
    logging.setLevel(Level.BODY);
    OkHttpClient.Builder httpClient = new OkHttpClient.Builder();
    httpClient.addNetworkInterceptor(new ResponseCacheInterceptor());
    httpClient.addInterceptor(new OfflineResponseCacheInterceptor());
    httpClient.cache(new Cache(new File(MyApplication.getMyApplicationInstance()
            .getCacheDir(), "ResponsesCache"), 10 * 1024 * 1024));
    httpClient.readTimeout(60, TimeUnit.SECONDS);
    httpClient.connectTimeout(60, TimeUnit.SECONDS);
    httpClient.addInterceptor(logging);
    ApiInterface request = ApiClient.getClient(httpClient).create(ApiInterface.class);
    Call<NewsResponse> call = request.getHeadlines(source, Constants.API_KEY);
    call.enqueue(new Callback<NewsResponse>() {
        @Override
        public void onResponse(@NonNull retrofit2.Call<NewsResponse> call,
                               @NonNull Response<NewsResponse> response) {
            if (response.isSuccessful()) {
                articles.clear();
                articles.addAll(response.body().getArticles());
                adapter.notifyDataSetChanged();
            }
            recyclerView.getLayoutManager().scrollToPosition(0);
        }
READ ALSO
Хеш ветки или хеш коммита

Хеш ветки или хеш коммита

Столкнулся с задачей вывода текущей версии приложения, расположенного в репозитории gitСовпадает ли хеш ветки master с хешем последнего коммита...

178
Как создать проект на React Native?

Как создать проект на React Native?

После команды create-react-app MyApp командная строка пишет, что 'command not found', хотя должен запуститься процесс создания приложения на React

249
Проблема с Table

Проблема с Table

Проблема с фреймворком Table

195
загрузка и удаление изображений

загрузка и удаление изображений

у меня есть форма для заполнения полей и выбора файлов

245