세미나때 질의 받았던 내용입니다.
1. 대부분의 Activity LifeCycle을 보면 프로세스 종료라는 단계로 destroyed를 표현하는데, Activity와 Process의 관계를 확실히 구분하여, LifeCycle의 onStop()->onCreate()의 타겟을 설명해 보자.
- 다음 그림을 참고하시면, Activity는 Process가 아닌, 그 내부의 Task라는 것을 알 수 있습니다.
- 안드로이드 프로세스의 종료는 Application class를 상속받아야 한다고 합니다.
- LifeCycle의 프로세스 종료단계는 Activity 컴포넌트의 종료로서,
바이블에서 제공한 그림이 '프로세스 종료'라고 표현하여 기정시되고 있지만, 저희가 생각하는 프로세스가 아닌 컴포넌트로 생각해야 할 것 같습니다.
2. OnSaveInstanceState와 OnRestoreInstanceState의 호출시 복원 코드의 작성은 어디에서 하는가?
- Bundle을 저장하는 것은 금일 세미나 설명처럼 OnSaveInstaneState를 Overriding하여 사용합니다.
- 컴포넌트 재시작 후 복구시에 Bundle이, OnCreate에도 전달되며 onRestoreInstanceState로도 전달됩니다.
( 두 메소드 모두 복구 코드 작성 가능 합니다. )
3. Drawable의 -ldpi, mdpi, hdpi의 사용 관련.
- 안드로이드 1.6부터 기기에 따른 고해상도 등이 지원되기 시작했기 때문에, drawable-hdpi,mdpi,ldpi가 생기게 되었습니다.
- 사용법은 drawable-hdpi에 dmc.png라는 파일이 있다면,
android:src="@drawable/dmc.png" 처럼 그냥 drawable을 루트로 사용하면 됩니다.
4. Activity 소멸도 Activity Manager service에서 수행하는가?
- Activity Manager Service에서 소멸을 포함한 전반적인 생명주기를 관리하는 것을 확인했습니다.
( Activity Manager is responsible for creating, destroying, and overall managing activities.) - Activity Manager Service는 다음의 constant variables에 맞추어 activity를 관리합니다.
enum ActivityState {
INITIALIZING,
RESUMED,
PAUSING,
PAUSED,
STOPPING,
STOPPED,
FINISHING,
DESTROYING,
DESTROYED
}
'ANDROID' 카테고리의 다른 글
Android View System (0) | 2011.09.07 |
---|---|
[Service Framework] Service Interface & Service Class & Service Proxy (0) | 2011.09.07 |
proxy 설정 (0) | 2011.09.07 |
성능 향상을 위한 TIP .. (0) | 2011.03.17 |
Handler 그리고 AsyncTask를 사용한 성능 향상 (0) | 2011.03.17 |