0

я инициализация загрузчика на OnCreate Фрагмент «s(), как этот фрагмент кода:Loader и onLoadFinished() после изменения ориентации

if (null == savedInstanceState) { 
    Bundle args = new Bundle(); 
    getLoaderManager().initLoader(0, args, this); 
} 

хорошо, это работает, и данные, как правило, возвращаются на onLoadFinished(). Но если я изменяю ориентацию, пока загрузчик еще загружает данные, то onLoadFinished() никогда не вызывается. Пожалуйста, может кто-нибудь объяснить мне, почему? Спасибо

+0

Почему вы не используете его в 'onActivityCreated' без' if' вообще? ... initLoader должен возвращать кешированный результат после изменения ориентации. – Selvin

+0

Я попытаюсь использовать 'onActivityCreated', но я думаю, что он тоже должен работать на' onCreate() '. – GPack

+0

@ Selvin хорошо, я пробовал без инструкции 'if': он работает, даже в onCreate(). Причина, по-моему, заключается в том, что _Loader_ необходимо повторно инициализировать каждый раз, чтобы возвращать кэшированные данные. Ваш комментарий по существу правильный, опубликуйте его как ответ, и я его приму. Благодарю. – GPack

ответ

0

Вам необходимо удалить флажок if (null == savedInstanceState), добавив, что проверка не загружается в состояние «началось», когда активность воссоздана, и только начальные загрузчики будут возвращать результаты.

Смежные вопросы