В этом уроке мы разберем структуру программного кода приложения, рассмотрим основные и дополнительные события приложения на примере шаблона, созданного в 7-м уроке.
Как и в любой программе, написанной на языке С/C++, работа программы начинается с функции main().
Здесь, первой строкой инициализируется структура appdata. Обычно в ней хранятся указатели на все важные объекты приложения, такие как: окно или макет (layout). Далее происходит инициализация обработчиков событий.
Tizen UI приложение, на протяжении своего жизненного цикла, может находиться в пяти разных состояниях: создание, возобновление, приостановка, завершение и управление. При переходе приложения из одного состояния в другое, система вызывает методы обратного вызова:
app_create() - вызывается при создании приложения. Здесь вы можете создать основу пользовательского интерфейса вашего приложения (создать окно, установить его размеры, загрузить макет и прочее), инициализировать компоненты модели приложения. Если функция возвращает истину - стартует главный поток приложения.
app_terminate() - вызывается при удалении приложения. Когда, главный поток приложения завершил свою работу. В этой функции необходимо проследить за освобождением выделенных в программе ресурсов, если таковые имеются.
app_pause() - вызывается, когда окно приложения полностью невидимо для пользователя.
app_resume() - вызывается каждый раз, когда окно приложения показывается пользователю.
app_control() - вызывается, когда приложение получает запрос на запуск от другого приложения.
Теперь перейдем к обработчикам системных событий. Функция ui_app_add_event_handler() регистрирует обработчики следующих системных событий:
APP_EVENT_LOW_MEMORY – недостаточно памяти.
APP_EVENT_LOW_BATTERY – низкий заряд батареи.
APP_EVENT_LANGUAGE_CHANGED – на устройстве был изменен язык ввода.
APP_EVENT_DEVICE_ORIENTATION_CHANGED – изменена ориентация экрана устройства.
APP_EVENT_REGION_FORMAT_CHANGED – изменены настройки локализации.
Функция ui_app_main() - запускает главный цикл приложения, после того как отработает app_create(). Если app_create() возвращает false, главный поток не запускается, а сразу вызывается app_terminate().
В следующем уроке мы разберем из каких базовых модулей состоит Tizen.