Xamarin.Android ListView и жизненный цикл действий

Действия проходят через определенные состояния при запуске приложения, таких как запуск, запуск, приостановка и остановка. Дополнительные сведения и конкретные рекомендации по обработке переходов состояния см. в руководстве по жизненному циклу действий. Важно понимать жизненный цикл действий и размещать ListView код в правильных расположениях.

Все примеры в этом документе выполняют задачи установки в методе действия OnCreate и (при необходимости) выполняют "слезы".OnDestroy В примерах обычно используются небольшие наборы данных, которые не изменяются, поэтому повторное загрузка данных чаще не требуется.

Однако, если данные часто изменяются или используют много памяти, возможно, целесообразно использовать различные методы жизненного цикла для заполнения и обновления.ListView Например, если базовые данные постоянно изменяются (или могут влиять на обновления других действий), то создание адаптера OnStart в или OnResume гарантирует отображение последних данных при каждом отображении действия.

Если адаптер использует такие ресурсы, как память или управляемый курсор, не забудьте освободить эти ресурсы в дополнительном методе, в котором они были созданы (например, объекты, созданные вOnStart).OnStop

Изменения конфигурации

Важно помнить, что изменения конфигурации , особенно поворот экрана и видимость клавиатуры, могут привести к уничтожению и повторному созданию текущего действия (если не указано в противном случае с помощью атрибута ConfigurationChanges ). Это означает, что при обычных условиях поворот устройства приведет ListView к повторному созданию и Adapter (если вы не написали код и OnPauseOnResume) положение прокрутки и состояния выбора строк будут потеряны.

Следующий атрибут предотвратит уничтожение и повторное создание действия в результате изменений конфигурации:

[Activity(ConfigurationChanges="keyboardHidden|orientation")]

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