조각의 onSaveInstanceState ()는 호출되지 않습니다.
Fragment의 onSaveInstanceState ()에 데이터를 저장하려고하는데 메서드가 호출되지 않습니다.
누군가 도울 수 있습니까?
public class MyFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
ScrollView content = (ScrollView) inflater.inflate(R.layout.content, container, false);
// More stuff
return content;
}
@Override
public void onSaveInstanceState(Bundle icicle) {
// NEVER CALLED
super.onSaveInstanceState(icicle);
//More stuff
}
}
적어도 내 경우에는 마침내 문제를 파악했습니다. onSaveInstanceState
호출하지 않은 FragmentActivity에서 재정의 되었습니다 super.onSaveInstanceState(Bundle outState)
. 그것을 추가하면 Fragment.onSaveInstanceState(Bundle outState)
정상적으로 작동합니다.
나는 당신과 같은 질문을 만나 onSaveInstanceState () 메서드를 시도했지만 작동하지 않았습니다.
onSaveInstanceState ()는 사용자가 한 활동에서 다른 활동으로 이동했다가 뒤로 이동하는 시나리오에서만 작동한다고 생각합니다. 사용자가 동일한 활동에서 조각 사이를 이동하는 시나리오에서는 작동하지 않습니다.
다음은 Google의 가이드 문서입니다. http://developer.android.com/guide/components/tasks-and-back-stack.html#ActivityState
확인해야 할 한 가지는 android:configChanges
AndroidManifest.xml에 플래그 를 포함하여 조각을 포함하는 활동이 다시 시작을 방해하지 않는지 확인하는 것 입니다.
일부 상황에서는 대신 조각 인수 를 사용하는 것이 도움이 될 수 있습니다 savedInstanceState
. 추가 설명 .
액티비티에서 FragmentManager # saveFragmentInstanceState 및 Fragment # setInitialSavedState 를 호출 해보세요 . saveFragmentInstanceState를 호출하면 프레임 워크가 onSaveInstanceState를 호출합니다. 그리고 setInitialSavedState를 호출하면 프레임 워크는 null 인수 'Bundle savedInstanceState'없이 onCreateView를 호출합니다.
전화 시도 setRetainInstance(true)
에 onCreate(Bundle savedInstanceState)
.
참고 URL : https://stackoverflow.com/questions/8503629/fragments-onsaveinstancestate-is-never-called
'Development Tip' 카테고리의 다른 글
쿠키가 활성화되어 있는지 확인 (0) | 2020.11.21 |
---|---|
수학 표현을 단순화하기위한 전략 (0) | 2020.11.21 |
Intent.ACTION_GET_CONTENT와 Intent.ACTION_PICK의 차이점 (0) | 2020.11.21 |
코드에서 topLayoutGuide 및 bottomLayoutGuide에 대한 자동 레이아웃 제약 조건 만들기 (0) | 2020.11.21 |
SQL에서 날짜를 비교하는 쿼리 (0) | 2020.11.21 |