#java #android #android_loader
У меня есть Loader, создаю и вызываю его так: mLoadData = getSupportLoaderManager().initLoader(LOADER_ID, bundle, this); mLoadData.onContentChanged(); При первом запуске все хорошо: запускается конструктор, onStart, doInBackground и, в конце, я получаю данные в активность. Но когда я поворачиваю экран — перезапускается loadInBackground, а потом вызывается два раза метод onLoadFinished в активности (она слушатель). Как сделать так, чтобы, при повороте экрана, я получил или ссылку на Loader, который уже существует, или получил данные, через метод onLoadFinished (можно эквивалентный), которые были загружены ранее, без перезапуска loadInBackground?
Ответы
Ответ 1
Согласно en-SO, докам и здравому смыслу onContentChanged() говорит лоадеру, что данные изменились и их надо заново загрузить. Т.е. вам надо запускать лоадер методом его запуска (sic!) forceLoad() вместо того, что используете вы. В этом случае лоадер не перезапустится после поворота экрана и будет каждый раз выдавать только уже загруженные данные, если они есть.
Комментариев нет:
Отправить комментарий