Fundamental Notes/bada

bada : Application Life-cycle

콩콩댕 2010. 11. 28. 12:27
반응형



어플리케이션의 Life-cycle

 

바다 어플리케이션은 백그라운드에서 실행될때와 포그라운드에서 실행될때 다음과 같은 사이클로 동작되어집니다.

 

 

어플리케이션의 상태별 동작

 

1) 초기화중 (Initializing)

  - 어플리케이션 프레임 워크는 응용 프로그램을 초기화하고 응용 프로그램의 프레임을 만듭니다.

  - 만약, OnAppInitializing() 메소드가 false를 리턴하면, 어플리케이션은 상태가 'Terminating'으로 변경되고 종료됩니다.

  - 만약, OnAppInitializing() 메소드가 true를 리턴하면, 응용 프로그램은 리소스의 UI 콘트롤이나 상태를 형상화가 가능합니다.

 

2) 실행중 (Running)

 

3) 종료중 (Terminating)

  - 어플리케이션은 할당한 리소스를 반환합니다.

 

4) 종료 (Terminated)

  - 어플리케이션 프레임워크는 어플리케이션을 메모리에서 제거합니다.

 

응용 프로그램의 시작

 

여러분은 어플리케이션 런쳐에서 응용 프로그램을 실행할 수 있습니다. 그러나 어플리케이션은 다른 어플리케이션에

의해서도 실행되질 수 있습니다.

 

프로세스 매니져는 어플리케이션 실행 바이너리와 필요한 라이브러리를 메모리에 로드합니다. 그리고 어플리케이션의

entry point(OspMain) 인스턴트를 생성하고 실행합니다.

어플리케이션 초기화 절차(OnAppInitializing())에서는 리소스, UI 컨포넌트, 초기값를 지정하는 모든 처리를 수행합니다.

 

 

응용 프로그램의 종료

 

응용 프로그램은 아래에 기술한 2가지 이유에 의해 종료됩니다.

 

1) 사용자가 작업을 종료 시킬때

 

  - 바다 응용 프로그램이 Application::Terminate 메소드를 호출하면, 어플리케이션이 종료됩니다.

  - 응용 프로그램이 포그라운드에서 동작중일때, 사용자가 End키를 누르면, 어플리케이션이 종료됩니다.

 

2) 시스템이 강제로 응용 프로그램을 종료 시킬때

 

  - 같은 응용 프로그램이 두번째 실행될때, 첫번째 실행된 응용 프로그램이 종료되어집니다. 모든 바다 어플리케이션은

     단일 어플리케이션 정책에 따라 같은 시점에 하나만 동작되어집니다.

  - 메모리 또는 배터리 잔량이 매우 낮을때, 시스템은 응용 프로그램을 종료합니다.

 

어플리케이션 종료 작업은 OnAppTerminating() 메소드에서 처리되어집니다. 이 메소드에서 응용 프로그램의 리소스를

반환하고 종료합니다.

Frame, Form과 Child control과 같이 할당된 UI 콘트롤 오브젝트는 OnAppTerminating()이 호출되기 이전에 반환됩니다.

그래서 UI 콘트롤 오브젝트는 OnAppTerminating()에서 억세스 할수 없습니다.

반드시 OnAppTerminating() 이전에 UI 콘트롤에 대한 엑세스가 필요하면, IFrameEventListener::OnFrameTerminating()

이벤트에서 처리합니다.

 

Foreground와 Background

 

다음 그림은 바다 어플리케이션이 Foreground와 Background가 상태가 될때, 어플리케이션과 어플리케이션 프레임

워크의 두가지 관점에서 보여주고 있습니다.

 

 

Foreground 관점에서 중요한 고려 사항

 

  - 응용 프로그램이 Foreground가 되면 화면에 보여지게됩니다.

  - 어플리케이션을 처음 실행한 경우, OnForeground() 메소드가 호출되어집니다.

  - 어플리케이션이 Foreground로 이동하는 경우

     . 태스크 관리자 목록에서 어플리케이션을 선택했을때

     . 어플리케이션이 Background에 있을때, 런쳐 어플리케이션에서 어플리케이션 아이콘을 선택했을때

   - 필요하다면, Foreground 이벤트에서 Drawing을 재개할 수 있다.

   - 어플리케이션이 Foreground에 있어도, OnForeground()를 호출하여 어떤 Screen 컴포넌트도 새로

      고침을 할 수 있다.

     

Background 관점에서 중요한 고려 사항

 

   - 어플리케이션은 Background가 되었을때 보이지 않케됩니다.

   - 어플리케이션이 Background로 이동하는 경우

     . Home 키가 눌렸을때

     . 전화나 알람등과 같이 팝업 윈도우가 떴을때

   - Background 이벤트를 받았을때, Drawing을 멈추는 것이 가장 좋은 형태입니다

'Fundamental Notes > bada' 카테고리의 다른 글

bada : UI & Graphics  (0) 2010.11.28
bada : Application  (0) 2010.11.28
bada : Fundamentals  (0) 2010.11.28
bada : Development Environment  (0) 2010.11.28
bada : 스터디 2일차  (0) 2010.11.16