Biraz arasındaki farklar hakkında karıştı Handlers, AsyncTaskve ThreadsAndroid'de. StackOverflow'da birkaç blog ve soru okudum.
Handlerkullanıcı arayüzüyle iletişim kurmanızı sağlayan arka plan iş parçacıklarıdır. Örneğin, bir ilerleme çubuğunun güncellenmesi yoluyla yapılmalıdır Handler. İşleyicileri kullanma avantajına sahip olursunuz MessagingQueues, bu nedenle iletileri planlamak veya birden çok kullanıcı arayüzü öğesini güncellemek veya tekrarlanan görevlere sahip olmak istiyorsanız.
AsyncTaskaslında benzerdir, HandlerUI iş parçacığından yararlanırlar , ancak çalışmazlar, bu nedenle veri almak için, örneğin web hizmetlerini almak için iyidir. Daha sonra kullanıcı arayüzüyle etkileşime geçebilirsiniz.
Threadancak kullanıcı arayüzü ile etkileşime giremez, daha "temel" iş parçacığı sağlar ve tüm soyutlamaları kaçırırsınız AsyncTask.
Ancak, bir soket bağlantısı hizmet çalıştırmak istiyorum. Bu bir işleyici, iş parçacığı, hatta bir iş parçacığında mı çalıştırılmalıdır AsyncTask? UI etkileşimi hiç gerekli değildir. Kullandığım performans açısından bir fark yaratıyor mu?
Bu arada, belgeler büyük ölçüde geliştirildi.
Handlerbir iş parçacığı değildir ve hiçbir şey yürütmez. Bu, yalnızca iletileri bir iş parçacığından başka bir iş parçacığının ileti sırasına güvenli bir şekilde iletmenin bir yoludur . Bu nedenle, normal olarak, (en azından) iki iş parçacığı hala oluşturulmalıdır, bu daha sonra bir işleyici kullanabilir , ancak işleyici hiçbir şeyi kendisi gerçekleştiremez.
