Если вы знаете о Ветке на Java, это будет легко для вас, чтобы понять работу Async Задача в android. В принципе, вы не можете выполнить какую-либо длительную задачу в основном потоке в android. Он заблокирует основной основной поток, и вы получите ошибку ANR (Applicaton not replying). Чтобы избежать этого, вы можете либо использовать нить, либо задачу Async. Тема имеет одно ограничение, вы не можете обновить нить нитки нитки в любом другом потоке. Таким образом, для обновления пользовательского интерфейса вам нужно отправить сообщение в поток основного/пользовательского интерфейса с помощью обработчика. Вам придется делать это каждый раз, когда вы что-то реализуете с помощью потока. Чтобы упростить, инфраструктура Android обеспечивает Async Task. Она имеет четыре методы:
onPreExecute(), вызываемые в потоке пользовательского интерфейса, прежде чем задача будет выполнена. Этот шаг обычно используется для настройки задачи, например, показывая индикатор выполнения в пользовательском интерфейсе.
doInBackground (Params ...), вызываемый в фоновом потоке сразу после onPreExecute() завершает выполнение. Этот шаг используется для выполнения фоновых вычислений, которые могут занять много времени. Параметры асинхронной задачи передаются на этот шаг. Результат вычисления должен быть возвращен этим шагом и будет возвращен на последний шаг. Этот шаг также может использовать publishProgress (Progress ...) для публикации одного или нескольких единиц прогресса. Эти значения публикуются в потоке пользовательского интерфейса на этапе onProgressUpdate (Progress ...).
onProgressUpdate (Progress ...), вызываемый в потоке пользовательского интерфейса после вызова publishProgress (Progress ...). Время выполнения не определено. Этот метод используется для отображения любой формы прогресса в пользовательском интерфейсе, пока фоновое вычисление все еще выполняется. Например, его можно использовать для анимации индикатора выполнения или отображения журналов в текстовом поле.
onPostExecute (Result), вызывается в потоке пользовательского интерфейса после завершения вычисления фона. Результат вычисления фона передается на этот шаг в качестве параметра.
Итак, что когда-нибудь вы должны поместить в run()
метод Thread, должен идти в doInBackground()
метод.
увидеть это http://stackoverflow.com/questions/9954477/async-http-post-android – amit