Обновление ProgressDialog с помощью AsyncTask - PullRequest
1 голос
/ 25 сентября 2011

Мне нужен AsyncTask для запуска моего ProgressDialog, пока я получаю данные из сети.Я понимаю AsyncTask.Но у меня сеть звонков в более чем дюжине мест.Как я могу повторно использовать один класс AsynchTask для всех этих вызовов, поскольку мой вызов в сеть происходит из другой активности?

Это заставило меня переписать AsyncTask везде, где в деятельности есть сетевой вызов.

Ответы [ 2 ]

0 голосов
/ 25 сентября 2011

Это действительно все зависит от того, насколько вовлечены ваши сетевые вызовы.Если они быстрые, а вы не извлекаете много данных, то с AsyncTask все будет в порядке.

В конечном итоге вам нужно очистить код и убедиться, что вы не повторяете никакой логики.,Убедитесь, что вы помещаете всю повторяющуюся логику в один метод.

Чтобы не переписывать AsyncTask для каждого действия, создайте «родительский» класс действия, в котором вы определите, что вы AsyncTaskлюбая другая повторяющаяся логика).Затем попросите действия, необходимые для запуска AsyncTask, расширить это действие.

Если, однако, ваши сетевые вызовы несколько связаны, вы, вероятно, захотите найти другой способ сделать это.Вы можете определить Сервис и связать все свои Действия с этим сервисом.

0 голосов
/ 25 сентября 2011

Не зная полных деталей вашего кода, он звучит для меня так, как будто вы используете AsyncTask так, как это никогда не было задумано.

Из документов :

Этот класс позволяет выполнять фоновые операции и публиковать результаты в потоке пользовательского интерфейса без необходимости манипулировать потоками и / или обработчиками.

На мой взгляд, AsyncTask подходит для относительно простых асинхронных задач, таких как одиночная загрузка файла / поток и т. Д. Когда возникнет необходимость в более сложных асинхронных задачахтогда, возможно, потребуется использовать всю функциональность потоков.Все сводится к дизайну и правильному выбору доступного инструмента для задачи ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...