У вас есть вопрос относительно пакета savedInstanceState, который вы получаете по обратным вызовам фрагмента, когда первый фрагмент создан, а затем снова привязан к активности.Android: использование savedInstanceState с фрагментами
Таким образом, я использую setRetainInstance (true), в результате фрагмент не должен быть уничтожен, а просто не привязан к активности, когда действие уничтожается и затем повторно присоединяется назад, когда активность воссоздается при изменении конфигурации, например.
Таким образом, потому что с помощью этого setRetainInstance (истина), это приведет к savedInstanceState сверток к ВСЕГДА быть пустым в обратных вызовов фрагмента, таких как: onActivityCreated()
, onCreate()
и т.д.
До сих пор так хорошо, теперь я получение некоторых сбоев от некоторых пользователей (действительно очень маленькое число), которое вызвано тем, что this savedInstanceState не является нулевым по фрагменту.
Итак, onActivityCreated() обратного вызова делает что-то вроде этого:
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
adapter = new CustomAdapter(getActivity(), getListView(), data, savedInstanceState);
setListAdapter(adapter);
setupEmptyListView();
getListView().setOnScrollListener(this);
}
CustomAdapter звонит какой-то момент из его конструкторе создается loadInstanceState()
метод, который делает свою работу, код ниже:
@Override
public void loadInstanceState(Bundle savedInstanceState) {
if (savedInstanceState != null) {
//do some stuff which is causing a crash
}
}
Теперь мой вопрос заключается в том, как можно попасть в этот оператор if, когда файл savedInstanceState, который я передаю, всегда должен иметь значение null.
И теперь ВОПРОС:
ли Android гарантировать, что при использованииsetRetainInstance(true)
на фрагменте сверток savedInstanceState, который передается в функции обратного вызова будет ВСЕГДА быть пустым?
Благодарим за ответы ребятам!
Мне кажется, что вам необходимо [метод onSaveInstance] (https://www.google.com.vn/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CDcQFjAB&url=http%3A%2F % 2Fstackoverflow.com% 2Fquestions% 2F9938862% 2Fandroid-и-onsaveinstance-и-восстановления и е = Mck8U7rOG-H-iAfT14GIBw & USG = AFQjCNHfPxzq_Bjd9wFV8GKtFpzwXx30ZQ & Sig2 = Zy7or38dyhnDfoF4VEUxEQ & BVM = bv.63934634, d.aGc) –