본문 바로가기

프로그래밍/Android

가로 / 세로 전환시( Screen Orientation Change ) 임시 데이타 처리

화면 전환시 onDestroy() => onCreate() 되면서 데이타가 초기화 되며 해당 데이타를 다시 복원하기 위해서는 아래와 같이 onRetainNonConfigurationInstance() override를 이용해서 구현할수 있다.
String strBackupData ="백업할 문자열";

boolean booleanBackupData =true;

@Override
public Object onRetainNonConfigurationInstance() {

       HashMap<String,Object> hMap = new HashMap<String,Object>();
       // 어떤 객체 건 상관없이 저장 
       hMap .put( "strBackupData", strBackupData );
       hMap .put( "booleanBackupData", booleanBackupData );
       .
       return hMap ;

}
이후 화면전화시 저장해둔 객체를 onCreate() 시점에서 얻어올수 있다.
public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

Object backUpObj = getLastNonConfigurationInstance();

  if ( backUpObj !=null){

     HashMap<String,Object> hMap = (HashMap<String,Object>) backUpObj ;
     this.strBackupData = ( String ) hMap.get("strBackupData");

     this.booleanBackupData = ( Boolean ) hMap.get("booleanBackupData");
  }
}