как работать с loader при повороте экрана

313
13 февраля 2017, 14:39

Не могу разобраться как организовать сохранение при повороте экрана. Получаю информацию Json.

public class FragmentWeatherTestApplication extends Fragment
        implements LoaderManager.LoaderCallbacks<List<WeatherItem>> {
@Override
public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    getLoaderManager().initLoader(0,null,this).forceLoad();
}
 ...
@Override
public Loader<List<WeatherItem>> onCreateLoader(int id, Bundle args) {
    Log.i(TAG, "onCreateLoader");
    return new FetchWeatherLoader(getActivity());
}
@Override
public void onLoadFinished(Loader<List<WeatherItem>> loader, List<WeatherItem> data) {
    Log.i(TAG, "onLoadFinished");
    mItems = data;
    setupAdapter();
}
@Override
public void onLoaderReset(Loader<List<WeatherItem>> loader) {
    Log.i(TAG, "onLoaderReset");
}
   .... 

  private static class FetchWeatherLoader extends AsyncTaskLoader<List<WeatherItem>>{
    public FetchWeatherLoader(Context context) {
        super(context);
    }
    @Override
    public List<WeatherItem> loadInBackground() {
        return new OpenWeatherFetch().fetchItems();
    }
}
Answer 1

forceLoad() — «принудительная» загрузка новых данных, а вы вызываете этот метод в onCreate, а значит при каждом повороте экрана. Вызывайте forceLoad в переопределенном методе "onStartLoading"

    private static class FetchWeatherLoader extends AsyncTaskLoader<String> {

    public FetchWeatherLoader(Context context) {
        super(context);
    }
    @Override
    protected void onStartLoading() {
        forceLoad();
    }
    @Override
    public List<WeatherItem> loadInBackground() {
        return new OpenWeatherFetch().fetchItems();
    }
}
READ ALSO
Сервис работает некорректно

Сервис работает некорректно

Получаю время с помощью

335
Фоторедактор android

Фоторедактор android

Доброго времени сутокВозник такой вопрос

316
Конвертация кода из java в с++

Конвертация кода из java в с++

Есть код, написанный на Java:

295
Настройка эмулятора в Android Strudio

Настройка эмулятора в Android Strudio

ЗдравствуйтеНужно запрограммировать обработку мышки

304