Должны ли мы использовать 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

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