setRetainInstance(true)
을 통해 상태를 저장하는 조각이 있습니다. - 내 mData
갑자기 null
된다 NullPointerException
와OS가 죽인 활동 후에 savedStstState가 null이 아닙니다.
public class MyFragment extends Fragment {
private SomeData mData;
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRetainInstance(true);
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
if (savedInstanceState == null) {
mData = new SomeData(getView());
} else {
mData.refresh(getView());
}
// More awesome code
}
}
}
때로는 응용 프로그램 충돌이 내 조각의 매우 단순화 된 코드입니다. 이것은 애플리케이션을 접고 잠시 후 돌아올 때 발생합니다.
일부 이론이 있습니다. 얼마 후 OS가 Activity
및 Fragment
을 죽입니다 (setRetainInstance (true)
에도 불구하고). 따라서 내 조각의 새 객체를 생성합니다. 으로 초기화 된 mData
입니다. 그러나 savedInstanseState
은 null과 같지 않습니다. 따라서 새로운 조각은 초기화를 건너 뛰고 null 참조에서 refresh(View)
을 호출하려고 시도합니다.
내 질문 : OS가 활동 (응용 프로그램이 아닌 화면) 및 다시 복귀 후 사망 할 때 은 무엇 내 조각의 onActivityCreated(savedInstanceState)
방법에 savedInstanseState
변수를 포함 할 것인가? 답 확실하지