it-swarm-id.com

Perbedaan antara metode onKey (), OnKeyDown () dan dispatchKeyEvent () yang disediakan oleh Android?

Apa perbedaan antara metode onKey (), OnKeyDown () dan dispatchKeyEvent () yang disediakan oleh Android?
Saya ingin tahu kapan dan di mana masing-masing dapat digunakan.
Mohon beri penjelasan.

31
Sen

Melacak kode sumber dari 5.1 Sumber untuk Kelas Tampilan . Tampaknya dispatchKeyEvent() adalah metode pertama yang dipanggil oleh sistem. Kelebihan itu akan mencegah setiap dan semua acara utama dipanggil kecuali versi dasar dipanggil.

Langkah pertama dispatchKeyEvent() adalah mencoba untuk meneruskan acara ke onKeyListener jika ada. Ini adalah saat onKey() dipanggil. Jika implementasi onKey() mengembalikan true, dispatchKeyEvent() akan kembali ke sana dan acara lainnya tidak akan dipanggil.

Jika tidak ada onKeyListener atau onKeyListener 'metode s onKey() kembali false, dispatchKeyEvent() maka akan memanggil KeyEvent' s dispatch() metode. Yang kemudian akan memanggil semua metode di KeyEvent.Callback antarmuka pada tampilan Anda. Ini termasuk onKeyDown() dan onKeyUp() .

47
Fr33dan

DispatchKeyEvent Peristiwa kunci perangkat keras selalu dikirim ke View yang saat ini dalam fokus. Mereka dikirim mulai dari atas hierarki Tampilan, dan kemudian turun, hingga mencapai tujuan yang sesuai. Jika Tampilan Anda (atau anak Tampilan Anda) saat ini memiliki fokus, maka Anda dapat melihat perjalanan acara melalui metode dispatchKeyEvent (). Singkatnya, dispatchKeyEvent () hanya akan dipanggil jika TextView/EditText dalam fokus.

onKeyDown Dipanggil ketika tombol ditekan dan tidak ditangani oleh salah satu tampilan di dalam aktivitas

0