Thread
Когда вы запускаете приложение, создается процесс для выполнения кода.Чтобы эффективно использовать вычислительный ресурс, потоки могут быть запущены внутри процесса, чтобы одновременно можно было выполнить несколько задач.Таким образом, потоки позволяют создавать эффективные приложения, эффективно используя процессор без простоя.
В Android все компоненты выполняются в одном, называемом главном потоке.Задачи очереди Android и выполняйте их одну за другой в главном потоке.Когда долго выполняющиеся задачи выполняются, приложение перестает отвечать на запросы.
Чтобы предотвратить это, вы можете создавать рабочие потоки и запускать фоновые или долго выполняющиеся задачи.
Обработчик
Поскольку android использует однопотоковую модель, компоненты пользовательского интерфейса создаются не поточно-безопасными. Это означает, что доступ к ним должен иметь только созданный им поток, то есть компонент пользовательского интерфейса должен обновляться только в основном потоке.Поскольку компонент пользовательского интерфейса выполняется в основном потоке, задачи, выполняемые в рабочих потоках, не могут изменять компоненты пользовательского интерфейса.Это где Handler входит в картину.Обработчик с помощью Looper может подключаться к новому потоку или существующему потоку и запускать код, который он содержит в подключенном потоке.
Обработчик делает возможным взаимодействие между потоками.С помощью обработчика фоновый поток может отправлять результаты в него, а обработчик, подключенный к основному потоку, может обновлять компоненты пользовательского интерфейса в основном потоке.
AsyncTask
Предоставляется AsyncTaskandroid использует как поток, так и обработчик, чтобы упростить выполнение простых задач в фоновом режиме и обновить результаты из фонового потока в основной поток.
См. поток Android, обработчик, asynctask и пулы потоков дляпримеры.