어플을 사용하다보면 안드로이드 특성상 뒤에 있는 Activity가 종료가 되다가
앞에 있는 Activity에서 뒤로가기를 하면 종료되었던 Activity가 살아나게 되는 경우가 있는데요.
저는 현재 이 경우를 위해 onSaveInstanceState 메서드를 통해 데이터를 저장하고
onCreate의 Bundle값에서 다시 불러오도록 하고 있습니다.
그런데 저장해야할 정보가 클래스, 배열등 다양해서 이 정보들을 Parcelable를 상속한 클래스에
넣어서 사용하고 있는데요. onCreate의 Bundle 내부의 해당 키값에 항상 null 이 떨어집니다.
아래 코드는 제가 실제 사용한 코드고요.
참고로 혹시나 해서 문자열을 outState.putParcelable(BundleConfig.KEY_TEST, "this_is_test");
이런식으로 넣어보니 문자열은 제대로 받아 왔었습니다.
유독 parcelable 만 null 로 들어오니 난감하네요.
혹시 이에 대한 원인 아시분 계시면 알려주세요!
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putParcelable(BundleConfig.KEY_DATA, mParcelableData);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
if(savedInstanceState != null && savedInstanceState.containsKey( BundleConfig.KEY_DATA )) {
mParcelableData = savedInstanceState.getParcelable( BundleConfig.KEY_DATA );
}




자답입니다.
Parcelable 사용하지 않고 Serializable를 구현한 클래스 자체를 저장해서 불러오니 제대로 되네요.