Я отримав трохи збентежений про відмінності між Handlers, AsyncTaskі Threadsв Android. Я прочитав досить багато блогів та запитань тут у StackOverflow.
Handler- фонові потоки, які надають вам змогу спілкуватися з інтерфейсом користувача. Наприклад, оновлення рядка прогресу повинно бути здійснено через Handler. Використовуючи обробники, ви маєте перевагу MessagingQueues, тому якщо ви хочете запланувати повідомлення або оновити кілька елементів інтерфейсу або мати завдання, що повторюються.
AsyncTaskнасправді вони подібні, вони використовують Handler, але не працюють в потоці інтерфейсу, тому це добре для отримання даних, наприклад, отримання веб-служб. Пізніше ви можете взаємодіяти з інтерфейсом користувача.
Threadоднак не може взаємодіяти з користувальницьким інтерфейсом, надавати більш "базові" нарізки, і ви пропускаєте всі абстракції AsyncTask.
Однак я хотів би, щоб у роботі було встановлено з'єднання з розеткою. Чи слід це запускати в обробнику чи потоці, а то й у AsyncTask? Взаємодія інтерфейсу взагалі не потрібна. Чи має значення зміна продуктивності, яку я використовую?
Тим часом документація значно покращилась.
Handlerне є потоком, і він нічого не виконує. Це лише засіб безпечно передавати повідомлення з однієї нитки до черги повідомлень іншої нитки . Отже, як правило, повинні бути створені (принаймні) два потоки, які потім можуть використовувати обробник, але обробник нічого не може виконати сам.
