뉴질랜드 다이어리(NZ Diary) 라빠

Tizen Native Application Lifecycle 본문

개발

Tizen Native Application Lifecycle

Donochi 2015. 6. 29. 15:18

자동으로 생성되는 UI Application 을 통해 Tizen Native Application 의 Life Cycle 을 알아봅시다.

int

main(int argc, char *argv[])

{

appdata_s ad = {0,};

int ret = 0;


ui_app_lifecycle_callback_s event_callback = {0,};

app_event_handler_h handlers[5] = {NULL, };


event_callback.create = app_create;

event_callback.terminate = app_terminate;

event_callback.pause = app_pause;

event_callback.resume = app_resume;

event_callback.app_control = app_control;


ui_app_add_event_handler(&handlers[APP_EVENT_LOW_BATTERY], APP_EVENT_LOW_BATTERY, ui_app_low_battery, &ad);

ui_app_add_event_handler(&handlers[APP_EVENT_LOW_MEMORY], APP_EVENT_LOW_MEMORY, ui_app_low_memory, &ad);

ui_app_add_event_handler(&handlers[APP_EVENT_DEVICE_ORIENTATION_CHANGED], APP_EVENT_DEVICE_ORIENTATION_CHANGED, ui_app_orient_changed, &ad);

ui_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED], APP_EVENT_LANGUAGE_CHANGED, ui_app_lang_changed, &ad);

ui_app_add_event_handler(&handlers[APP_EVENT_REGION_FORMAT_CHANGED], APP_EVENT_REGION_FORMAT_CHANGED, ui_app_region_changed, &ad);

ui_app_remove_event_handler(handlers[APP_EVENT_LOW_MEMORY]);


ret = ui_app_main(argc, argv, &event_callback, &ad);

if (ret != APP_ERROR_NONE) {

dlog_print(DLOG_ERROR, LOG_TAG, "app_main() is failed. err = %d", ret);

}


return ret;

}

앱이 최초 구동되는 시점에, 위와 같이 다섯개의 callback 을 등록하는것을 볼 수 있습니다.

각각 Application 의 life cycle 에 따라 system 에서 호출되게 됩니다.


create : 앱이 최초 Folk 되고, mainloop 에 진입하기 직전에 호출됩니다. sample app 에서와 같이, base gui 를 생성해 주거나, 초기 리소스로딩등을 수행하게 됩니다.

terminate : 앱이 종료될때 한번 호출됩니다. 사용한 메모리를 정리하는 작업이 주요 업무가 되겠네요.

pause : 앱이 화면에서 사라질때 호출됩니다. Multi-tasking 을 통해 다른 앱이 실행되는 등의 상황에서 호출되겠죠. 만약의 상황을 대비하여, 진행중인 내용들을 임시 저장하는것이 좋습니다.

resume : 앱이 화면을 점유할때 호출됩니다. 다른앱에 의한 점유이후 회복할때뿐 아니라, 최초에도 호출된다는점을 잊지 마세요.

app_control : 위의 네개가 일반적인 반면, Tizen 에 존재하는 특이한 Callback 입니다. 앱을 실행하는 측에서 실행되는 앱에 특정 정보를 전달하고자 할때, 이 데이터가 포함되어 호출됩니다. 이에 대한 자세한 내용은 추후 다시 설명하기로 하죠.


Sample Application 을 실행해보면, 아래와 같은 순서로 위에서 등록한 callback 들이 호출되는것을 알 수 있습니다.


create -> app_control -> [resume -> pause] 반복 -> terminate



Application 의 life cycle 을 알아야 하는 목적은 앱의 구동시간을 최적화하거나, 사용자의 사용성을 개선하는데 꼭 필요하기 때문입니다!


또 만나요!

'개발' 카테고리의 다른 글

[Xamarin.Forms] RatingStars Component  (0) 2016.05.10
[Xamarin.Forms] Paypal 이용하기  (0) 2016.05.10
Tizen SDK 설치  (0) 2015.06.29
Android 에서 사용가능한 Game Engine 목록  (0) 2015.05.12
Windows Batch File 만들기  (0) 2015.05.06