Взаимодействие экранов и управление приложениями

Архитектура YotaPhone 2 позволяет без труда создавать приложения для EPD, так как они не отличаются от приложений для цветного экрана и содержат те же компоненты. Разница состоит лишь в том, на каком экране запущено приложение.

Кнопка «Перенести» позволяет быстро запускать приложения на EPD. Она находится в правом нижнем углу экрана.

В момент нажатия кнопки задача (Task) отправляется на другой экран.

Замечание: подробную информацию о задачах (Tasks) и стеке переходов назад (Back Stack) в Android можно найти здесь: Tasks and Back Stack

4 варианта работы с операцией (Activity):

1. Удержание операции (Activity) на EPD - в этом случае операция (Activity) может быть активна только на EPD; её перенос на цветной экран невозможен;

2. Запуск операции (Activity) на EPD – в этом случае операция (Activity) может быть запущена на EPD; её перенос на цветной экран возможен при нажатии кнопки «Перенести» на EPD;

3. Удержание операции (Activity) на цветном экране – в этом случае операция (Activity) может быть активна только на цветном экране; её перенос на цветной экран невозможен;

4. Запуск операции (Activity) на цветном экране - в этом случае операция (Activity) может быть запущена на цветном экране; её перенос на EPD возможен при нажатии кнопки «Перенести» на цветном экране.

1. Удержание операции (Activity) на EPD

Это вариант для операции (Activity), которая создана специально для EPD и не предназначена для отображения на цветном экране.

Например, виджет погоды:

Чтобы запустить операцию (Activity) в этом режиме, добавьте специальные мета-данные в Activity в манифест AndroidManifest.xml или же запустите Activity со специальным флагом.

Добавление мета-данных в манифест:

    <activity android:name=".EpdActivity">    
        <meta-data
     android:name="com.yotadevices.keep_on_epd_screen"        
     android:value="true" />   
    </activity>

SСтарт операции (Activity) со специальным флагом:

    Intent intent = new Intent(FrontActivity.this, EpdActivity.class);
    EpdIntentCompat.setEpdFlags(intent, EpdIntentCompat.FLAG_ACTIVITY_KEEP_ON_EPD_SCREEN);
    startActivity(intent);

Исключение: если установлено правило android:launchMode="singleInstance", то операция (Activity) в любом случае может быть перенесена на другой экран

Замечание: новая операция (Activity) будет запущена на EPD в рамках отдельной задачи (Task), если эта задача (Task) не была создана ранее. Если же задача (Task) уже создана, новая операция (Activity) будет запущена на EPD в рамках этой задачи (Task).

2. Запуск операции (Activity) на EPD

В этом случае операция (Activity) может быть запущена на EPD. Отличие от предыдущего варианта в том, что перенос операции (Activity) с EPD на цветной экран и, наоборот, с цветного экрана на EPD, возможен при нажатии кнопки «Перенести».

Чтобы запустить операцию (Activity) в этом режиме, добавьте специальный флаг:

    Intent intent = new Intent(FrontActivity.this, EpdActivity.class);
    EpdIntentCompat.setEpdFlags(intent, EpdIntentCompat.FLAG_ACTIVITY_START_ON_EPD_SCREEN);
    startActivity(intent);

3. Удержание операции (Activity) на цветном экране

Это вариант для операции (Activity), которая создана исключительно для цветного экрана и не предназначена для отображения на EPD.

Например, не имеет смысла отображать приложение YotaHub на EPD, поэтому оно запускается в данном режиме. Можно заметить, что кнопка «Перенести» не доступна.

Чтобы запустить операцию (Activity) в этом режиме, добавьте специальные мета-данные в Activity в манифест AndroidManifest.xml или же запустите Activity со специальным флагом.

Добавление мета-данных в манифест:

    <activity android:name=".FrontActivity">   
        <meta-data
     android:name="com.yotadevices.keep_on_front_screen"
     android:value="true" />  
    </activity>

Старт операции (Activity) со специальным флагом:

    Intent intent = new Intent(EpdActivity.this, FrontActivity.class);
    EpdIntentCompat.setEpdFlags(intent, EpdIntentCompat.FLAG_ACTIVITY_KEEP_ON_FRONT_SCREEN);
    startActivity(intent);

Исключение: если установлено правило android:launchMode="singleInstance", то операция (Activity) в любом случае может быть перенесена на другой экран.

4. Запуск операции (Activity) на цветном экране

В этом случае операция (Activity) может быть запущена на цветном экране. Перенос операции (Activity) с цветного экрана на EPD и, наоборот, с EPD на цветной экран, возможен при нажатии кнопки «Перенести».

Чтобы запустить операцию (Activity) в этом режиме, добавьте специальный флаг:

    Intent intent = new Intent(EpdActivity.this, FrontActivity.class);
    EpdIntentCompat.setEpdFlags(intent, EpdIntentCompat.FLAG_ACTIVITY_START_ON_FRONT_SCREEN);
    startActivity(intent);