Peristiwa memicu perubahan status dan memulai tindakan. Peristiwa bertindak sebagai sinyal, yang dikirim dari UI Sistem atau dari luar proses menggunakan intent. Peristiwa memberi tahu UI yang Dapat Diskalakan tentang kejadian yang memerlukan respons.
Peristiwa UI yang Dapat Diskalakan adalah sinyal sistem, yang dipicu oleh perubahan hardware atau software, yang dapat mengubah status panel. Peristiwa ini memberi tahu framework tentang kejadian yang memerlukan respons UI. Untuk kontrol yang lebih akurat terhadap status panel, Anda juga dapat menentukan peristiwa kustom, selain peristiwa sistem bawaan.
Struktur acara
ID unik wajib diisi (ID) mengidentifikasi suatu acara. ID ini mengategorikan
jenis kejadian, seperti _System_AppOpenEvent
atau _System_PanelEmptyEvent
.
Selain ID ini, peristiwa dapat secara opsional membawa token, key-value pair untuk memberikan konteks dan detail tentang peristiwa tersebut. Token ini memungkinkan pemfilteran peristiwa yang lebih terperinci, sehingga transisi atau tindakan dapat dipicu hanya dalam kondisi tertentu.
Token diteruskan ke peristiwa sebagai daftar pasangan nilai kunci yang dipisahkan oleh
titik koma (;
). Berikut adalah daftar kunci yang didukung sistem:
Kunci | Deskripsi |
---|---|
panelId |
Mengidentifikasi panel UI tertentu yang terkait dengan peristiwa. |
component |
Menentukan nama komponen, seperti aktivitas yang ditautkan ke acara. |
package |
Menunjukkan nama paket yang terkait dengan peristiwa. |
panelToVariantId |
Menentukan varian target panel dalam konteks tertentu. Gunakan atribut ini untuk mengalirkan animasi dengan memantau transisi panel. Misalnya, memicu transisi panel B ke status tertutup saat panel A ditransisikan ke status terbuka. |
Contoh:
"component=com.android.app;panelId=panel1"
Logika pencocokan peristiwa
Saat dikirim, peristiwa harus dicocokkan dengan kriteria yang ditentukan untuk memicu transisi atau tindakan. Proses pencocokan terjadi dalam dua tahap:
Pencocokan
id
peristiwa yang ketat:id
peristiwa yang dikirim harus cocok persis denganid
yang ditentukan dalam filter peristiwa transisi atau tindakan. Jika ID tidak cocok, peristiwa dianggap tidak cocok.Pencocokan token peristiwa parsial: Jika ID peristiwa cocok, sistem akan menggunakan pencocokan parsial untuk mengevaluasi token peristiwa terhadap token yang ditentukan dalam filter.
Agar kecocokan terjadi, semua properti peristiwa (token) yang ditentukan dalam definisi peristiwa transisi harus cocok dengan properti yang sesuai dalam peristiwa yang dikirim.
Namun, peristiwa yang dikirim dapat berisi token tambahan yang tidak secara eksplisit ditentukan dalam filter. Token tambahan tidak mencegah kecocokan. Sebagai gantinya, atribut tersebut diabaikan dalam evaluasi pencocokan.
Sebaliknya, jika filter menentukan token yang tidak ada dalam peristiwa yang dikirim atau, jika nilai token yang cocok tidak sesuai, maka tidak dianggap sebagai kecocokan.
Misalnya, pertimbangkan transisi yang ditentukan untuk dipicu saat id="app_open"
terjadi pada panelId="panel1"
dengan component="com.android.myapp.Activity"
.
Jika peristiwa yang dikirim memiliki id="app_open"
, panelId="panel1"
, dan
component="com.android.myapp.Activity"
, kecocokan akan dibuat. Semua kriteria
filter terpenuhi dan nilai yang lebih spesifik untuk Activity value in the
dispatched event is considered a match for
com.android.myapp`.
Namun, kecocokan akan gagal jika peristiwa yang dikirim saat id="app_open"
,
panelId="panel1"
, dan component="com.android.yourapp.Activity"
.
Meskipun id
dan panelId
cocok, component
tidak sama dengan component
dalam transisi — com.android.myapp
— tidak cocok dengan com.android.yourapp
dalam peristiwa yang dikirim.
Pemicu transisi
Meskipun transisi mungkin cocok, ini tidak berarti transisi dipicu. Hanya satu transisi yang dapat dipicu untuk setiap peristiwa. UI yang dapat diskalakan bertujuan untuk memicu hanya kecocokan terdekat.
Misalnya, saat dua transisi — satu dengan nama komponen dan satu tanpa nama komponen -m
— cocok, hanya transisi dengan nama komponen yang dipicu.
Pengiriman dan penanganan peristiwa
Peristiwa adalah pusat dari perilaku dinamis UI yang Dapat Diskalakan. Peristiwa dapat dikirim dari UI Sistem atau dari proses eksternal dengan intent.
Peristiwa sistem
Framework ini menentukan beberapa peristiwa sistem yang memfasilitasi tindakan ini:
Atribut | Deskripsi |
---|---|
_System_OnHomeEvent ( SYSTEM_HOME_EVENT_ID ) |
Menandakan bahwa sistem menerima permintaan untuk menampilkan layar Beranda. Di AAOS, Beranda dapat berupa konfigurasi jendela yang fleksibel, seperti kombinasi widget, atau bahkan peta. Peristiwa ini sangat penting untuk transisi atau tindakan yang bergantung pada pengguna yang melihat antarmuka layar utama utama. |
_System_TaskOpenEvent ( SYSTEM_TASK_OPEN_EVENT_ID ) |
Dikirim saat tugas atau aplikasi dibuka. Peristiwa umum ini dapat memicu tindakan atau transisi berdasarkan peluncuran aplikasi. Acara ini berisi token seperti |
_System_TaskCloseEvent ( SYSTEM_TASK_CLOSE_EVENT_ID ) |
Menandakan bahwa tugas atau aplikasi telah ditutup dan berfungsi sebagai bagian yang berlawanan dengan
_System_TaskOpenEvent . Hal ini memungkinkan sistem bereaksi terhadap aplikasi yang ditutup. Hal ini dapat memicu transisi untuk mengembalikan panel ke status
default atau untuk memulai tindakan pembersihan lainnya.
|
_System_TaskPanelEmptyEvent ( SYSTEM_TASK_PANEL_EMPTY_EVENT_ID ) |
Dikirim saat panel tertentu menjadi kosong dan menyertakan
Peristiwa ini penting untuk pemulihan error yang andal dan untuk meluncurkan ulang aplikasi saat konten terkait mengalami error atau berhenti secara tidak terduga untuk mencegah tampilan panel UI kosong. Misalnya, jika aplikasi |
_System_EnterSuwEvent ( SYSTEM_ENTER_SUW_EVENT_ID ) |
Menunjukkan sistem memasuki Wizard Penyiapan (SUW). Peristiwa ini menandakan kesiapan sistem dan dapat dikonfigurasi untuk meluncurkan aplikasi atau menampilkan panel yang ditentukan setelah sistem diinisialisasi. Memasuki status sistem kritis seperti itu memerlukan peristiwa khusus untuk memicu penyesuaian atau tindakan UI yang sesuai. |
_System_ExitSuwEvent ( SYSTEM_EXIT_SUW_EVENT_ID ) |
Menunjukkan sistem keluar dari Wizard Penyiapan (SUW). Serupa dengan
_System_EnterSuwEvent , peristiwa ini memungkinkan sistem merespons
penyelesaian proses penyiapan dengan meluncurkan aplikasi default atau
beralih ke UI standar. |
_System_OnAnimationEndEvent ( SYSTEM_ON_ANIMATION_END_EVENT_ID ) |
Dipicu saat animasi selesai di UI. Anda dapat menggunakan
peristiwa ini untuk memicu tindakan atau perubahan status berikutnya yang bergantung pada
penyelesaian transisi visual.
Peristiwa ini berisi token untuk |