onSaveInstanceState() : 화면 방향 바뀌기 전 자원 저장하는 메서드
Activity 가 죽기 전에 호출되는 메서드
1. 저장할 사용자 정의 클래스를 Serializable 인터페이스를 구현받아 생성한다.
static class Point implements Serializable {
float x,y;
boolean draw;
float mStrokeWidth;
int mStrokeColor;
public Point(float x,float y,boolean draw,float mStrokeWidth,int mStrokeColor) {
this.x = x;
this.y = y;
this.draw = draw;
this.mStrokeColor = mStrokeColor;
this.mStrokeWidth = mStrokeWidth;
}
}//end class Point
2. onSaveInstanceState() 메서드를 오버라이딩 한다.
// 방향이 바뀔때 호출되는 메소드(자원 저장용 메소드)
// Activity가 죽기전에 호출되는 메서드
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putSerializable("list", mDrawView.pointList);
}
3. onCreate 메서드 호출시 저장한 savedInstanceState Bundle 객체를 처리한다.
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mDrawView = new DrawView(this);
if(savedInstanceState!=null) {
// 화면전환 전에 넣어주었던 pointList를 꺼내서 세팅
mDrawView.pointList =
(ArrayList<PhoroshopActivity.DrawView.Point>) savedInstanceState.getSerializable("list");
}
setContentView(mDrawView);
}
적용 예제 전체 소스
'Dev. 안드로이드 > 참고소스' 카테고리의 다른 글
[안드로이드 예제] BroadcastReceiver 이용하기 (3) | 2012.10.26 |
---|---|
[안드로이드 예제] AsyncTask 이용하기 (2) | 2012.10.23 |
[안드로이드 팁] Android 기기별 액정 해상도 알아내기 (0) | 2012.10.22 |
안드로이드 환경설정(Preferences) 사용하기 (0) | 2012.07.26 |
안드로이드 단말기(device 기기) 정보(계정, 고유 정보값) 가져오기 (4) | 2012.05.21 |