이벤트 구성

이벤트 는 상태 변경을 트리거하고 작업을 시작합니다. 이벤트는 인텐트를 사용하여 시스템 UI 또는 프로세스 외부에서 전달되는 신호 역할을 합니다. 이벤트는 응답이 필요한 발생에 관해 확장 가능한 UI에 알립니다.

확장 가능한 UI 이벤트는 하드웨어 또는 소프트웨어 변경으로 트리거되는 시스템 신호로, 패널의 상태를 변경할 수 있습니다. 이러한 이벤트는 UI 응답이 필요한 발생에 관해 프레임워크에 알립니다. 패널 상태를 더 정확하게 제어하기 위해 기본 제공 시스템 이벤트 외에 맞춤 이벤트를 정의할 수도 있습니다.

이벤트의 구조

필수 고유 식별자 (ID)는 이벤트를 식별합니다. 이 ID는 _System_TaskOpenEvent 또는 _System_PanelEmptyEvent와 같은 발생 유형을 분류합니다.

이 ID 외에 이벤트는 선택적으로 토큰, 키-값 쌍을 전달하여 이벤트에 관한 컨텍스트와 세부정보를 제공할 수 있습니다. 이러한 토큰을 사용하면 이벤트를 더 세부적으로 필터링하여 특정 조건에서만 전환 또는 작업이 트리거되도록 할 수 있습니다.

토큰은 세미콜론 (;)으로 구분된 키-값 쌍의 목록으로 이벤트에 전달됩니다. 시스템 지원 키 목록은 다음과 같습니다.

설명
panelId 이벤트와 연결된 특정 UI 패널을 식별합니다.
component 이벤트에 연결된 활동과 같은 구성요소 이름을 지정합니다.
package 이벤트와 관련된 패키지 이름을 나타냅니다.
panelToVariantId 특정 컨텍스트에서 패널의 타겟 변형을 지정합니다. 이 속성을 사용하여 패널 전환을 수신 대기하여 애니메이션을 캐스케이드합니다. 예를 들어 패널 A 가 열린 상태로 전환될 때 패널 B 전환을 닫힌 상태로 트리거합니다.

예를 들면 다음과 같습니다.

"component=com.android.app;panelId=panel1"

이벤트 일치 로직

이벤트가 전달되면 전환 또는 작업을 트리거하기 위해 정의된 기준과 일치해야 합니다. 일치 프로세스는 두 단계로 진행됩니다.

  • 엄격한 이벤트 id 일치: 전달된 이벤트의 id는 전환 또는 작업 이벤트 필터에 지정된 id와 정확히 일치해야 합니다. ID가 일치하지 않으면 이벤트가 일치하지 않는 것으로 간주됩니다.

  • 부분 이벤트 토큰 일치: 이벤트 ID가 일치하면 시스템은 부분 일치를 사용하여 필터에 정의된 토큰과 이벤트의 토큰을 평가합니다.

    일치가 발생하려면 전환의 이벤트 정의에 지정된 모든 이벤트 속성 (토큰)이 전달된 이벤트의 상응하는 속성과 엄격히 일치해야 합니다.

    즉, 전달된 이벤트는 필터에 명시적으로 정의되지 않은 추가 토큰을 포함할 수 있습니다. 추가 토큰은 일치를 방지하지 않습니다. 대신 일치 평가에서 무시됩니다.

    반대로 필터가 전달된 이벤트에 없는 토큰을 지정하거나 일치하는 토큰의 값이 일치하지 않으면 일치하는 것으로 간주되지 않습니다.

예를 들어 component="com.android.myapp.Activity"panelId="panel1"에서 id="app_open"이 발생할 때 트리거되도록 정의된 전환을 고려합니다.

전달된 이벤트에 id="app_open", panelId="panel1", component="com.android.myapp.Activity"가 있으면 일치합니다. 모든 필터 기준이 충족되고 Activity value in the dispatched event is considered a match forcom.android.myapp`의 더 구체적인 값이 일치하는 것으로 간주됩니다.

그러나 전달된 이벤트가 id="app_open", panelId="panel1", component="com.android.yourapp.Activity"인 경우 일치하지 않습니다. idpanelId는 일치하지만 전환의 component 와 같지 않은 component는 전달된 이벤트의 com.android.yourapp 과 일치하지 않습니다.com.android.myapp

전환 트리거

전환이 일치할 수 있지만 트리거된다는 의미는 아닙니다. 이벤트별로 하나의 전환만 트리거할 수 있습니다. 확장 가능한 UI는 가장 일치하는 항목만 트리거하는 것을 목표로 합니다.

예를 들어 구성요소 이름이 있는 전환과 구성요소 이름이 없는 전환 -m이 일치하는 경우 구성요소 이름이 있는 전환만 트리거됩니다.

이벤트 전달 및 처리

이벤트는 확장 가능한 UI의 동적 동작에 있어 핵심입니다. 이벤트는 인텐트를 사용하여 시스템 UI 또는 외부 프로세스에서 전달될 수 있습니다.

시스템 이벤트

프레임워크는 이러한 작업을 용이하게 하는 여러 시스템 이벤트를 정의합니다.

속성 설명
_System_OnHomeEvent

(SYSTEM_HOME_EVENT_ID)
시스템이 화면을 표시하라는 요청을 수신했음을 나타냅니다. AAOS에서 은 위젯 조합 또는 지도와 같은 창의 유연한 구성일 수 있습니다. 이 이벤트는 사용자가 기본 홈 인터페이스를 보는 데 의존하는 전환 또는 작업 에 중요합니다.
_System_TaskOpenEvent

(SYSTEM_TASK_OPEN_EVENT_ID)

작업 또는 앱이 열릴 때 전달됩니다. 이 일반 이벤트는 앱 실행을 기반으로 작업 또는 전환을 트리거할 수 있습니다.

이 이벤트에는 panelIdcomponent와 같은 토큰이 포함됩니다.

_System_TaskCloseEvent

(SYSTEM_TASK_CLOSE_EVENT_ID)
작업 또는 앱이 닫혔음을 알리고 _System_TaskOpenEvent의 대응 역할을 합니다. 이를 통해 시스템은 앱이 닫히는 데 반응할 수 있습니다. 이를 통해 패널을 기본 상태로 되돌리거나 다른 정리 작업을 시작하는 전환을 트리거할 수 있습니다.
_System_TaskPanelEmptyEvent

(SYSTEM_TASK_PANEL_EMPTY_EVENT_ID)

특정 패널이 비어 있을 때 전달되며 panelId를 토큰으로 포함하므로 비어 있는 패널에 따라 트리거가 필터링됩니다.

이 이벤트는 강력한 오류 복구에 중요하며 연결된 콘텐츠가 다운되거나 예기치 않게 종료될 때 앱을 다시 실행하여 빈 UI 패널이 표시되지 않도록 합니다.

예를 들어 ControlBar 앱이 다운되면 패널에서 이 이벤트를 감지하고 ControlBar를 자동으로 다시 실행하는 작업을 구성할 수 있습니다.

.
_System_EnterSuwEvent

(SYSTEM_ENTER_SUW_EVENT_ID)
시스템이 설정 마법사 (SUW)로 전환됨을 나타냅니다. 이 이벤트는 시스템 준비 상태를 알리고 시스템이 초기화되면 앱을 실행하거나 지정된 패널을 표시하도록 구성할 수 있습니다. 이러한 중요한 시스템 상태로 전환하려면 적절한 UI 조정 또는 작업을 트리거하는 전용 이벤트가 필요합니다.
_System_ExitSuwEvent

(SYSTEM_EXIT_SUW_EVENT_ID)
시스템이 설정 마법사 (SUW)에서 종료됨을 나타냅니다. _System_EnterSuwEvent와 마찬가지로 이 이벤트를 사용하면 시스템이 기본 앱을 실행하거나 표준 UI로 전환하여 설정 프로세스 완료에 응답할 수 있습니다.
_System_OnAnimationEndEvent

(SYSTEM_ON_ANIMATION_END_EVENT_ID)
UI에서 애니메이션이 완료되면 트리거됩니다. 이 이벤트를 사용하여 시각적 전환 완료에 의존하는 후속 작업 또는 상태 변경을 트리거할 수 있습니다.

이 이벤트에는 애니메이션이 끝날 때 패널이 끝난 변형을 나타내는 variantId 토큰이 포함됩니다.