단말기 방향을 바꾸면 onCreate ?

onStop -> onDestroy 된후에 다시 onCreate로 시작된다. 즉, Activity가 종료된후에 다시 실행된다. 보통 onCreate에서 초기화처리등을 실행하는데 이때 설정한 인스턴스의 값이 초기화되버리는 경우가 있다. 따라서 Activity를 종료하지 않도록 아래와 같이 android:configChanges 를 설정한다.

<activity
            android:name="jp.pe.jo.android.MyActivity"
            android:label="@string/application_name"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
이렇게 설정하면 아래의 이벤트 메소드가 호출된다.
	@Override
	public void onConfigurationChanged(Configuration newConfig) {
		super.onConfigurationChanged(newConfig);
		Log.d("JO", "MainActivity.onConfigurationChanged");
	}
참고사이트: http://labs.techfirm.co.jp/android/mita/2613 http://stackoverflow.com/questions/456211/activity-restart-on-rotation-android]]>

Related Posts