Handler Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Handler memungkinkan Anda mengirim dan memproses Message dan menjalankan objek yang terkait dengan utas MessageQueue.
[Android.Runtime.Register("android/os/Handler", DoNotGenerateAcw=true)]
public class Handler : Java.Lang.Object
[<Android.Runtime.Register("android/os/Handler", DoNotGenerateAcw=true)>]
type Handler = class
inherit Object
- Warisan
- Turunan
- Atribut
Keterangan
Handler memungkinkan Anda mengirim dan memproses Message dan menjalankan objek yang terkait dengan utas MessageQueue. Setiap instans Handler dikaitkan dengan satu utas dan antrean pesan utas tersebut. Ketika Anda membuat Handler baru, itu terikat ke Looper. Ini akan mengirimkan pesan dan runnable ke antrean pesan Looper itu dan menjalankannya pada utas Looper itu.
Ada dua kegunaan utama untuk Handler: (1) untuk menjadwalkan pesan dan runnable yang akan dijalankan pada beberapa titik di masa mendatang; dan (2) untuk mengantrekan tindakan yang akan dilakukan pada utas yang berbeda dari utas Anda sendiri.
Penjadwalan pesan dicapai dengan #postmetode , , #postAtTime(Runnable, long), #postDelayed#sendEmptyMessage, #sendMessage, #sendMessageAtTime, dan #sendMessageDelayed . Versi <em>post</em> memungkinkan Anda untuk mengantrekan objek yang dapat dijalankan untuk dipanggil oleh antrean pesan ketika diterima; <versi em>sendMessage</em> memungkinkan Anda untuk mengantrekan Message objek yang berisi bundel data yang akan diproses oleh metode Handler #handleMessage (mengharuskan Anda menerapkan subkelas Handler).
Saat memposting atau mengirim ke Handler, Anda dapat mengizinkan item diproses segera setelah antrean pesan siap untuk melakukannya, atau menentukan penundaan sebelum diproses atau waktu absolut untuk diproses. Dua yang terakhir memungkinkan Anda menerapkan batas waktu, kutu, dan perilaku berbasis waktu lainnya.
Ketika proses dibuat untuk aplikasi Anda, utas utamanya didedikasikan untuk menjalankan antrean pesan yang mengurus pengelolaan objek aplikasi tingkat atas (aktivitas, penerima siaran, dll) dan jendela apa pun yang mereka buat. Anda dapat membuat utas Anda sendiri, dan berkomunikasi kembali dengan utas aplikasi utama melalui Handler. Ini dilakukan dengan memanggil metode em<post/em> atau <em>sendMessage</em> yang sama <seperti sebelumnya, tetapi dari utas baru> Anda. Runnable atau Message yang diberikan kemudian akan dijadwalkan dalam antrean pesan Handler dan diproses jika sesuai.
<h2>Pertimbangan performa saat menggunakan Handler</h2>
Berhati-hatilah bahwa metode Handler "has" dan "remove" bisa sangat lambat karena operasi ini memindai seluruh antrean pesan yang tertunda. Jika yang mendasar LooperMessageQueue memiliki banyak pesan tertunda, ini bisa mahal.
<ul><li>Alih-alih menghapus pesan atau panggilan balik untuk membatalkan operasi yang tertunda, pertimbangkan untuk mengatur bendera untuk menunjukkan pembatalan dan meminta operasi memeriksa bendera sebelum melanjutkan. <li>Alih-alih memeriksa apakah antrean memiliki pesan atau panggilan balik untuk menemukan apakah operasi yang tertunda belum terjadi, pertimbangkan agar operasi tersebut menetapkan bendera untuk menunjukkan bahwa operasi telah dimulai. </ul>
Lihat java.util.concurrent untuk primitif konkurensi standar.
Java dokumentasi untuk android.os.Handler.
Bagian dari halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Android Open Source Project dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Creative Commons 2.5 Lisensi Atribusi.
Konstruktor
| Nama | Deskripsi |
|---|---|
| Handler() |
Konstruktor default mengaitkan handler ini dengan |
| Handler(Action<Message>) |
Menginisialisasi instans baru kelas Handler. |
| Handler(Handler+ICallback) |
Konstruktor mengaitkan handler ini dengan Looper untuk utas saat ini dan mengambil antarmuka panggilan balik tempat Anda dapat menangani pesan. |
| Handler(IntPtr, JniHandleOwnership) |
Konstruktor yang digunakan saat membuat representasi terkelola objek JNI; dipanggil oleh runtime. |
| Handler(Looper, Handler+ICallback) |
Gunakan yang disediakan Looper alih-alih yang default dan ambil antarmuka panggilan balik untuk menangani pesan. |
| Handler(Looper) |
Gunakan yang disediakan |
Properti
| Nama | Deskripsi |
|---|---|
| Class |
Mengembalikan kelas runtime dari . |
| Handle |
Handel ke instans Android yang mendasar. (Diperoleh dari Object) |
| JniIdentityHashCode |
Mendapatkan kode hash identitas yang ditetapkan ke Java peer ini oleh runtime interop. (Diperoleh dari Object) |
| JniManagedPeerState |
Handler memungkinkan Anda mengirim dan memproses |
| JniPeerMembers |
Menyediakan metadata anggota serekan JNI untuk jenis ini. |
| Looper |
Mendapatkan nilai Looper. |
| PeerReference |
Mendapatkan referensi objek JNI untuk peer Java ini. (Diperoleh dari Object) |
| ThresholdClass |
API ini mendukung infrastruktur Mono untuk Android dan tidak dimaksudkan untuk digunakan langsung dari kode Anda. |
| ThresholdType |
API ini mendukung infrastruktur Mono untuk Android dan tidak dimaksudkan untuk digunakan langsung dari kode Anda. |
Metode
| Nama | Deskripsi |
|---|---|
| Clone() |
Membuat dan mengembalikan salinan objek ini. (Diperoleh dari Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Handler memungkinkan Anda mengirim dan memproses |
| CreateAsync(Looper, Handler+ICallback) |
Buat Handler baru yang pesan yang diposting dan dapat dijalankan tidak tunduk pada hambatan sinkronisasi seperti tampilan vsync. |
| CreateAsync(Looper) |
Buat Handler baru yang pesan yang diposting dan dapat dijalankan tidak tunduk pada hambatan sinkronisasi seperti tampilan vsync. |
| DispatchMessage(Message) |
Tangani pesan sistem di sini. |
| Dispose() |
Merilis sumber daya yang dipegang oleh rekan Java ini. (Diperoleh dari Object) |
| Dispose(Boolean) |
Merilis sumber daya yang dipegang oleh rekan Java ini. (Diperoleh dari Object) |
| DisposeUnlessReferenced() |
Handler memungkinkan Anda mengirim dan memproses |
| Dump(IPrinter, String) |
Menulis status objek ini ke output yang disediakan. |
| DumpAsync(IPrinter, String) |
Secara asinkron melakukan operasi yang sesuai. |
| Equals(Object) |
Handler memungkinkan Anda mengirim dan memproses |
| Equals(Object) |
Menunjukkan apakah beberapa objek lain "sama dengan" yang satu ini. (Diperoleh dari Object) |
| GetHashCode() |
Mengembalikan nilai kode hash untuk objek . (Diperoleh dari Object) |
| GetMessageName(Message) |
Mengembalikan string yang mewakili nama pesan yang ditentukan. |
| HandleMessage(Message) |
Subkelas harus menerapkan ini untuk menerima pesan. |
| HasCallbacks(IRunnable) |
Periksa apakah ada posting pesan yang tertunda dengan callback r dalam antrean pesan. |
| HasMessages(Int32, Object) |
Periksa apakah ada posting pesan yang tertunda dengan kode 'apa' dan yang obj-nya adalah 'objek' dalam antrean pesan. |
| HasMessages(Int32) |
Periksa apakah ada posting pesan yang tertunda dengan kode 'apa' dalam antrean pesan. |
| JavaFinalize() |
Dipanggil oleh pengumpul sampah pada objek ketika pengumpulan sampah menentukan bahwa tidak ada lagi referensi ke objek. (Diperoleh dari Object) |
| Notify() |
Membangunkan satu utas yang menunggu monitor objek ini. (Diperoleh dari Object) |
| NotifyAll() |
Membangunkan semua utas yang menunggu monitor objek ini. (Diperoleh dari Object) |
| ObtainMessage() |
Mengembalikan baru |
| ObtainMessage(Int32, Int32, Int32, Object) |
Sama seperti |
| ObtainMessage(Int32, Int32, Int32) |
Sama seperti |
| ObtainMessage(Int32, Object) |
Sama seperti |
| ObtainMessage(Int32) |
Sama seperti |
| Post(Action) |
Menambahkan yang dapat dijalankan ke antrean pesan handler ini. |
| Post(IRunnable) |
Menyebabkan runnable r ditambahkan ke antrean pesan. |
| PostAtFrontOfQueue(Action) |
Memposting yang dapat dijalankan untuk iterasi berikutnya dari antrean pesan handler ini. |
| PostAtFrontOfQueue(IRunnable) |
Memposting pesan ke objek yang mengimplementasikan Runnable. |
| PostAtTime(Action, Int64) |
Memposting runnable untuk dijalankan pada waktu aktif yang ditentukan. |
| PostAtTime(Action, Object, Int64) |
Memposting runnable untuk dijalankan pada waktu aktif yang ditentukan. |
| PostAtTime(IRunnable, Int64) |
Menyebabkan runnable r ditambahkan ke antrean pesan, dijalankan pada waktu tertentu yang diberikan oleh <var>uptimeMillis</var>. |
| PostAtTime(IRunnable, Object, Int64) |
Menyebabkan runnable r ditambahkan ke antrean pesan, dijalankan pada waktu tertentu yang diberikan oleh <var>uptimeMillis</var>. |
| PostDelayed(Action, Int64) |
Memposting runnable untuk dijalankan setelah penundaan yang ditentukan. |
| PostDelayed(IRunnable, Int64) |
Menyebabkan r yang dapat dijalankan ditambahkan ke antrean pesan, dijalankan setelah jumlah waktu yang ditentukan berlalu. |
| PostDelayed(IRunnable, Object, Int64) |
Menyebabkan r yang dapat dijalankan ditambahkan ke antrean pesan, dijalankan setelah jumlah waktu yang ditentukan berlalu. |
| RemoveCallbacks(Action, Object) |
Menghapus panggilan balik yang tertunda untuk yang dapat dijalankan yang ditentukan. |
| RemoveCallbacks(Action) |
Menghapus panggilan balik yang tertunda untuk yang dapat dijalankan yang ditentukan. |
| RemoveCallbacks(IRunnable, Object) |
Hapus postingan yang tertunda dari Runnable <var>r</var> dengan token</var Object >var<> yang berada dalam antrean pesan. |
| RemoveCallbacks(IRunnable) |
Hapus postingan yang tertunda dari Runnable r yang berada dalam antrean pesan. |
| RemoveCallbacksAndMessages(Object) |
Hapus posting panggilan balik yang tertunda dan pesan terkirim yang var obj</var-nya> adalah <token>/var var<>.<> |
| RemoveMessages(Int32, Object) |
Hapus posting pesan yang tertunda dengan kode 'apa' dan yang obj-nya adalah 'objek' yang berada dalam antrean pesan. |
| RemoveMessages(Int32) |
Hapus postingan pesan yang tertunda dengan kode 'apa' yang ada dalam antrean pesan. |
| SendEmptyMessage(Int32) |
Mengirim Pesan yang hanya berisi nilai apa. |
| SendEmptyMessageAtTime(Int32, Int64) |
Mengirim Pesan yang hanya berisi nilai apa, yang akan dikirimkan pada waktu tertentu. |
| SendEmptyMessageDelayed(Int32, Int64) |
Mengirim Pesan yang hanya berisi nilai apa, yang akan dikirimkan setelah jumlah waktu yang ditentukan berlalu. |
| SendMessage(Message) |
Mendorong pesan ke akhir antrean pesan setelah semua pesan tertunda sebelum waktu saat ini. |
| SendMessageAtFrontOfQueue(Message) |
Antrekan pesan di bagian depan antrean pesan, untuk diproses pada perulangan berikutnya dari perulangan pesan. |
| SendMessageAtTime(Message, Int64) |
Antrekan pesan ke dalam antrean pesan setelah semua pesan tertunda sebelum waktu absolut (dalam milidetik) <var>uptimeMillis</var>. |
| SendMessageDelayed(Message, Int64) |
Antrekan pesan ke dalam antrean pesan setelah semua pesan tertunda sebelumnya (waktu saat ini + penundaanMillis). |
| SetHandle(IntPtr, JniHandleOwnership) |
Mengatur properti Handle. (Diperoleh dari Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Handler memungkinkan Anda mengirim dan memproses |
| ToArray<T>() |
Membuat array terkelola dari pembungkus array Java ini. (Diperoleh dari Object) |
| ToString() |
Mengembalikan representasi string objek. (Diperoleh dari Object) |
| UnregisterFromRuntime() |
Membatalkan pendaftaran peer Java ini dari runtime interop. (Diperoleh dari Object) |
| Wait() |
Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <diberitahu></em> atau <em>terganggu</em>. (Diperoleh dari Object) |
| Wait(Int64, Int32) |
Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <>diberitahu</em> atau <em>terganggu</em>, atau sampai sejumlah waktu nyata berlalu. (Diperoleh dari Object) |
| Wait(Int64) |
Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <>diberitahu</em> atau <em>terganggu</em>, atau sampai sejumlah waktu nyata berlalu. (Diperoleh dari Object) |
Implementasi Antarmuka Eksplisit
| Nama | Deskripsi |
|---|---|
| IJavaPeerable.Disposed() |
Handler memungkinkan Anda mengirim dan memproses |
| IJavaPeerable.Finalized() |
Handler memungkinkan Anda mengirim dan memproses |
| IJavaPeerable.JniObjectReferenceControlBlock |
Handler memungkinkan Anda mengirim dan memproses |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Handler memungkinkan Anda mengirim dan memproses |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Handler memungkinkan Anda mengirim dan memproses |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Handler memungkinkan Anda mengirim dan memproses |
Metode Ekstensi
| Nama | Deskripsi |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Mendapatkan nama JNI dari jenis instans |
| JavaAs<TResult>(IJavaPeerable) |
Cobalah untuk memaksa |
| JavaCast<TResult>(IJavaObject) |
Melakukan konversi jenis yang diperiksa runtime Android. |
| JavaCast<TResult>(IJavaObject) |
Handler memungkinkan Anda mengirim dan memproses |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Cobalah untuk memaksa |