안드로이드에서 Activity 가로세로 회전시 onCreate()를 다시 호출하게 되는데

 

 이때 회전하기 전의 화면상태를 알아올방법이 없다는게 문제..;


 그래서 API 문서 뒤적뒤적 해보니 나오는게 Activity에서 onPause전후에 저장할수있도록


 함수를 하나 열어둔게 있어 이걸로 사용하니 정상적으로 전달된다.


 (onPause전에 나올지 후에나올지는 보장할수없다고 문서에 표시되어있음 )




 그런데 이때 주의점이 Bundle에 저장하는 소스를 넣고나서 


 가끔씩 런타임 오류가 나서 왜그럴까 고민해봤는데


 값이 일정 사이즈 이상되면 오류가나는게 아닐까 조심스럽게 추측해봄.


 참고로 테스트시 ArrayList<String>에 데이터가 2000개정도 담긴 변수를 저장시 가끔오류가 났음.






public class MainActivity extends Activity

{

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

if( savedInstanceState == null )

{//최초 생성시

}

    else

    {

Log.i("testNumber : " , savedInstanceState.getInt("testNumber") + "" );

    }

}



        @Override

protected void onSaveInstanceState(Bundle outState) {

             outState.putInt("testNumber", 100);

super.onSaveInstanceState(outState);

}

}


+ Recent posts