В пользовательском интерфейсе для выполнения некоторых фоновых работ я использовал отдельную Thread
. Но, как предлагают другие, я сейчас использую AsyncTask
.
В чем главное различие между a Thread
и an AsyncTask
?
В каком сценарии я должен использовать Thread
или AsyncTask
?
Ответы:
Для длительных или ресурсоемких задач это можно сделать двумя способами: потоками Java и встроенной в Android AsyncTask.
Ни один из них не обязательно лучше другого, но знание того, когда использовать каждый вызов, необходимо для повышения производительности системы в ваших интересах.
Используйте AsyncTask для:
Используйте потоки Java для:
И есть много хороших ресурсов через Интернет, которые могут помочь вам:
http://www.vogella.com/articles/AndroidBackgroundProcessing/article.html
источник
AsyncTask
с собственным планировщиком.Если вы используете потоки Java, вы должны выполнить следующие требования в своем собственном коде:
источник
Нить
AsyncTask
источник
Для получения дополнительной информации посетите здесь
источник
Нить:
Thread
следует использовать для отделения длительных операций от основного потока, чтобы повысить производительность. Но это не может быть отменено элегантно и не может справиться с изменениями конфигурации Android. Вы не можете обновить пользовательский интерфейс сThread
.AsyncTask
может использоваться для обработки рабочих элементов длительностью менее 5 мс. СAsyncTask
, вы можете обновить пользовательский интерфейс в отличие от JavaThread
. Но многие долгосрочные задачи будут подавлять производительность.У вас есть несколько альтернатив для них обоих.
HandlerThread / Handler и ThreadPoolExecutor
Обратитесь к сообщению ниже для более подробной информации:
Обработчик против AsyncTask против потока
источник