Может ли произойти изменение конфигурации после вызова startActivityForResult?

#android #android-activity #android-lifecycle #android-configchanges

#Android #android-activity #android-жизненный цикл #android-configchanges

Вопрос:

Учитывая следующую ситуацию (частично псевдокод):

  1. Пользователь нажимает кнопку в Activity A , которая, в свою очередь, выполняет этот код:
 ProgressBar.setVisibility(ВИДИМЫЙ) // по умолчанию устанавливается как НЕВИДИМЫЙ в макете
startActivityForResult(ActivityB)
  1. Пользователь поворачивает свое устройство

Возможно ли, что шаг 2 (вращающееся устройство) вызывает изменение конфигурации, которое приводит к воссозданию активности A и, следовательно progressBar , должно быть скрыто до B отображения активности? Я знаю, что startActivityForResult это асинхронный вызов, но я не уверен, как он реализован внутренне, поэтому, если изменение конфигурации в Activity A может произойти до B отображения Activity?

Комментарии:

1. Лично я бы попытался настроить его так, чтобы это не имело значения в любом случае. Это похоже на одну из тех вещей, которые могут отличаться в зависимости от версии Android.

2. Зачем вам использовать progressbar в A, если вы только что запустили B? Панель вообще видна? Как бы вы обновили его с B? Я не понимаю эту конструкцию.

3. @blackapps Я просто переключил две строки, чтобы сделать их более интуитивно понятными. Запуск Activity B занимает больше времени, чем мне бы хотелось, поэтому я показываю ProgressBar . При его реализации у меня возник вопрос, может ли изменение конфигурации скрыть действие ProgressBar до B отображения. Это больше связано с обучением и любопытством, чем с практической проблемой.

4. @CommonsWare Практически видел, я думаю, никто не заметит разницы между восстановлением ProgressBar при изменении конфигурации (если это может произойти) и отказом от этого, но мне интересно, возможно ли вообще, что изменение конфигурации может произойти. Если это так, я бы реализовал несколько строк для сохранения и восстановления состояния загрузки, в противном случае я бы пропустил это 😉 Конечно, это больше связано с обучением и любопытством, поэтому постановка вопроса, скорее всего, заняла больше времени, чем его реализация 😉