안드로이드에서 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);
}
}
'개발 > Android' 카테고리의 다른 글
안드로이드 스튜디오(Android Studio) Error:(46, 0) Gradle DSL method not found: 'runProguard()' (0) | 2015.04.07 |
---|---|
안드로이드 국가별 언어코드 (0) | 2014.09.14 |
안드로이드 해상도별 아이콘 사이즈 변환 하기 (0) | 2014.09.12 |
Android SDK Content Loader 오류 (0) | 2014.09.12 |
Android Error : android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views. (0) | 2013.10.27 |