Должны ли мы использовать saveInstanceState во фрагментах, если есть getArguments()?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Должны ли мы использовать saveInstanceState во фрагментах, если есть getArguments()?

Сообщение Anonymous »

Во фрагментах Android мы можем получить исходные данные в onCreate() из saveInstanceState или getArguments(). Я часто проверяю их оба на ноль, а затем назначаю переменные. Например, в Котлине:

Код: Выделить всё

val bundle = savedInstanceState ?: arguments
bundle?.let {
startDate = Date(it.getLong(ARG_START_DATE, 0))
endDate = Date(it.getLong(ARG_END_DATE, startDate.time))
}
Итак, сначала я проверяю, есть ли saveInstanceState != null, и если да, то получу данные оттуда. Если оно равно нулю, я проверю getArguments() != null и если да, то получу данные оттуда. В противном случае переменные будут иметь значение null, 0 или false.

Когда мы оставляем фрагмент и вызываем onSaveInstanceState(), мы можем записать данные в пакет, а затем прочитать их в onCreate(). Но мы также можем записывать данные в getArguments() и читать их из любого места фрагмента. Почему нам следует использовать saveInstanceState, поскольку мы можем писать в getArguments()?

Подробнее здесь: https://stackoverflow.com/questions/522 ... targuments
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»