Подтвердить что ты не робот

Какой из них использовать: onSaveInstanceState vs. onRetainNonConfigurationInstance?

Насколько я могу видеть onRetainNonConfigurationInstance - это избыточный обратный вызов. Если у моей активности действительно дорогостоящая инициализация, мне лучше использовать onSaveInstanceState. Сохраненный экземпляр охватывает больше ситуаций, чем экземпляр без конфигурации. Есть ли какие-либо рекомендации по использованию одного API по сравнению с другим? Спасибо.

4b9b3361

Ответ 1

Насколько я могу видеть onRetainNonConfigurationInstance является избыточным обратным вызовом.

Нет, это не так.

Если у моей активности действительно дорогостоящая инициализация, мне лучше использовать onSaveInstanceState.

onSaveInstanceState() не предназначен для "действительно дорогостоящей инициализации". Он предназначен для "эй, пользователь внес некоторые изменения в информацию в своей деятельности, но еще не сохранил его, не потерял эти данные, m'kay?".

Есть ли какой-либо ориентир для использования одного API по сравнению с другим?

Если он находится в Bundle и не слишком большой, используйте onSaveInstanceState(). Все, что не соответствует Bundle (например, сокет) или действительно велико (например, фотография как Bitmap), должно использовать onRetainNonConfigurationInstance(), и ваше приложение должно быть в состоянии повторно создать эти элементы при необходимости.