Я пытаюсь выяснить, не делаю ли я что-то не так с загрузчиками. Я использую библиотеку поддержки, и у меня есть фрагмент, который в onCreate() вызывает initLoader(), устанавливая себя как LoaderCallbacks, однако при вращении он дважды получает результат в onLoadFinished(), один раз в результате вызова init (и у него уже есть данные), и один раз в результате того, что FragmentActivity перебирает все загрузчики в onStart() и доставляет результат, поскольку у него уже есть данные.
Если я вызываю init только один раз (при первом запуске фрагмента), он не устанавливает себя в качестве обратного вызова для загрузчика, поэтому он вообще не получает вызов onLoadFinished. Кажется, что onLoadFinished следует вызывать только один раз, поскольку в onLoadFinished() могут выполняться некоторые дорогостоящие действия (например, адаптеры списка очистки и т. д.), поэтому я просто пытаюсь выяснить, является ли это ошибкой или я просто вызов init в неподходящее время или что-то еще.
У кого-нибудь есть понимание этого вопроса?
getLoaderManager().initLoader(0, null, this);
вonResume()
кажется решением для многих людей (включая меня). См. stackoverflow.com/a/14524031/1617737 . - person ban-geoengineering   schedule 26.01.2016