Иногда не получается обратный вызов onCreateLoader после вызова initLoader

У меня есть действие, которое вызывает initLoader при его создании, чтобы загрузить данные, которые будет отображать действие. Обычно это нормально работает. У меня установлены точки останова, чтобы видеть порядок, в котором все происходит. Сначала я вызываю initLoader, затем получаю обратный вызов OnCreateLoader, затем обратный вызов OnLoadFinished, и все в порядке.

Однако я заметил, что если я изменил ориентацию на своем Android, я не получу обратный вызов OnCreateLoader или обратный вызов OnLoadFinished, в результате чего на странице не будут отображаться данные. Я все еще получаю свою точку останова при вызове initLoader, поэтому я знаю, что это происходит, но я не получаю сообщения об ошибке и не могу найти никакой документации, объясняющей, почему я не получаю обратный вызов после вызова initLoader.

Интересно, что я получаю обратные вызовы, если возвращаюсь к исходной ориентации.

Итак, подведем итоги:

Я начинаю действие в портретной ориентации

  • Я вызываю initLoader
  • Я получаю обратные вызовы onCreateLoader и onLoadFinished

Затем я меняю на альбомную ориентацию

  • Я вызываю initLoader
  • нет обратных вызовов onCreateLoader или onLoadFinished

Я возвращаюсь к портрету

  • Я вызываю initLoader
  • Я получаю обратные вызовы onCreateLoader и onLoadFinished

Аналогично, если я начинаю действие в альбомном режиме, я получаю обратные вызовы. Затем, если я переключаюсь на портретную ориентацию, я этого не делаю.Затем, если я вернусь в альбомную ориентацию, я снова получу обратные вызовы.

Кто-нибудь знает, что происходит?

11
задан casimps1 18 October 2011 в 15:47
поделиться