savedInstanceState()
을 사용하여 조각을 제거 할 때 상태를 저장 한 다음 조각을 다시 스택에서 팝하는 상태를 복원 할 수 있습니까? 백 스택에서 조각을 복원하면 savedInstanceState 번들은 항상 null입니다.백 스택에서 조각을 복원 할 때 savedInstanceState
현재 앱 흐름은 다음과 같습니다. 조각 생성 -> 조각 제거 (백 스택에 추가됨) -> 백 스택에서 조각이 복원 됨 (savedInstanceState 번들이 null 임). 나는 문제가 제거되는 및 스택을 다시 추가 할 때 onSavedInstanceState()
가 호출되지 않습니다 것을 생각
public void onActivityCreated(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle bundle = getArguments();
Long playlistId = bundle.getLong(Constants.PLAYLIST_ID);
int playlistItemId = bundle.getInt(Constants.PLAYLISTITEM_ID);
if (savedInstanceState == null) {
selectedVideoNumber = playlistItemId;
} else {
selectedVideoNumber = savedInstanceState.getInt("SELECTED_VIDEO");
}
}
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt(Constants.SELECTED_VIDEO, selectedVideoNumber);
}
:
다음은 관련 코드입니다. onsavedInstanceState()를 사용할 수 없다면이 문제를 해결할 다른 방법이 있습니까?
많은 감사합니다 :) 그것은 –
확실하지 이것은 좋은 생각이 내 문제를 해결했다. 이것이 메모리에 대한 참조를 저장하면 메모리를 없애는 관점을 파괴하는 목적을 무효화 할 수 있습니까? – craigrs84
직접 테스트를하지 않았기 때문에 실제로 확신 할 수 없습니다. 그러나 내 생각은 이렇게 간다.레이아웃의 모든 요소를 초기화 할 때 이러한 요소의 대부분을 전역 변수로 설정하는 것이 표준이므로 위의 예에서 참조로 인해 기본보기를 재활용 할 수 없으면 Android는 재활용 할 수 없습니다 이 뷰들 중 어느 하나가 메모리와 동일한 문제를 일으킨다. – AllDayAmazing