ANDROID2011. 3. 17. 09:04

 세미나때 질의 받았던 내용입니다. 


 

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
    }

 

Posted by BLUE-NOTE