Нитка
Нитка - це паралельна одиниця виконання. У нього є власний стек викликів. Існує два способи реалізації потоків у додатках.
Один - надання нового класу, який розширює Thread і переосмислює його метод run (). Інший - надання нового екземпляра Thread об'єктом Runnable під час його створення. Нитку можна виконати, викликавши її метод "start". Ви можете встановити "Пріоритет" потоку, викликавши його метод "setPriority (int)".
Нитка може бути використана, якщо ви не впливаєте на частину інтерфейсу користувача. Наприклад, ви телефонуєте в якусь веб-службу або завантажуєте деякі дані, а після завантаження відображаєте їх на екрані. Тоді вам потрібно скористатися обробником з ниткою, і це ускладнить вашу програму для обробки всіх відповідей з теми.
Обробник дозволяє вам надсилати та обробляти об'єкти повідомлень та запуску, пов'язані з чергою повідомлень потоку. Кожен потік має кожну чергу повідомлень. (Як і список справ), і потік буде приймати кожне повідомлення та обробляти його, поки черга повідомлень не буде порожньою. Отже, коли обробник спілкується, він просто передає повідомлення потоку абонента, і він буде чекати, щоб обробити.
Якщо ви використовуєте потоки Java, вам потрібно обробляти наступні вимоги у власному коді:
Синхронізація з основним потоком, якщо ви опублікуєте результати в інтерфейсі користувача. Немає за замовчуванням для скасування потоку. Немає об'єднання ниток за замовчуванням. Немає за замовчуванням для обробки змін конфігурації в Android
AsyncTask
AsyncTask забезпечує правильне та просте використання потоку інтерфейсу користувача. Цей клас дозволяє виконувати фонові операції та публікувати результати в потоці інтерфейсу користувача, не маніпулюючи потоками та / або обробниками. Асинхронна задача визначається обчисленням, яке працює на фоновому потоці і результат якого публікується на потоці інтерфейсу користувача.
AsyncTask пройде наступні 4 етапи:
onPreExecute ()
Викликається на потік інтерфейсу користувача перед виконанням завдання
doInbackground (Параметри ..)
Викликається у фоновий потік відразу після завершення виконання onPreExecute ().
onProgressUpdate (Прогрес ..)
Викликається на потік інтерфейсу користувача після дзвінка на публікаціюПрогрес (Прогрес ...).
onPostExecute (Результат)
Після завершення обчислення фону викликається на потік інтерфейсу користувача.
Чому слід використовувати AsyncTask?
Проста у використанні для потоку інтерфейсу користувача. (Отже, використовуйте його, коли потік виклику є потоком інтерфейсу користувача).
Не потрібно маніпулювати обробниками.