2012-07-10 27 views
9

Handler'daki removeCallbacks (Runnable r) 'in tam anlamı nedir? documentation'dan geçtim ve sadece "İleti kuyruğunda olan tüm Runnable r iletilerini kaldır" yazıyor.Android'deki İşleyici'deki removeCallbacks (Runnable r) ne demektir

Şimdi sorum şu: eğer ileti zaten işleyicim tarafından işlenmeye başlandıysa ve removeCallbacks numaralı telefondan aramama rağmen, yarısı tamamlanmış mesajımı işlemeyi durdurur mu? Veya removeCallbacks numaralı telefonu aramam bile, işleyicim tarafından işleme başlamış olan mesaj (post(Runnable r)'u aradığımda) çalıştırılacak mı?

cevap

8

Yürütülebilirler yalnızca ileti sırasından çıktıklarından çalıştırılmalıdır, böylece iletiniz zaten işleme başladıysa, removeCallbacks numaralı telefonu arayarak etkilenmemelidir. Zaten kaldırılmış olmalı, bu yüzden işleme devam edecektir.

+0

Tamam ... Teşekkürler dostum .. !!! – AndroDev

+0

Merhaba Bill ... Bir şey daha ... Eğer async görev kullanırsanız ve onPostExecute çalışırken ve sonra asynctask.cancel (true) olarak adlandırılır, bu durumda, onPostExecute da iptal edilecektir? – AndroDev

+0

@AndroDev Bilmiyorum. Bu ayrı bir soru olarak ilan edilmelidir. –

10

Yeni bir Handler oluşturduğunuzda, oluşturduğu iş parçacığının iş parçacığı/ileti sırasına bağlıdır. Bu noktadan sonra, mesajlar ve runnable'ları bu mesaj kuyruğuna gönderir ve mesaj kuyruğundan çıktıkça yürütürler. removeCallbacks, henüz kuyruktan henüz işlemeye başlamamış olan runnables'ları kaldırır.

+0

Teşekkür ederim Alex. – AndroDev

İlgili konular