/ / Прекратяване на изтеглянето на файлове с httpclient и asynctask - android, httpclient, android-asynctask

Прекратяване на изтеглянето на файлове с httpclient и asynctask - android, httpclient, android-asynctask

В моето приложение трябва да изтеглям файлове от URL адресаместа. Искам да покажа напредъка на изтеглянето в диалогов прозорец (или по избор в областта за уведомяване). Направих няколко добри ресурси по този въпрос (нещо като http://progrnotes.blogspot.com/2010/09/c-android.html). За съжаление, всички примери не дават ясна индикация за правилното отменяне на изтеглянето по искане на потребителя. Така че въпросът ми всъщност е доста прост:

Като се има предвид, че файлът се изтегля отна фона (с httpclient) и показва диалогов прозорец с прогрес за изтегляне и бутон за анулиране, как мога да отменя изтеглянето и да спра задаването на заден план при натискане на бутона?

Знам, че убиването на нишки обикновено не е доброидея, така че вероятно ще трябва да работя с "анулиране" - променливо в моята фонова нишка. Как мога да комуникирам сигнал за спиране от бутона към асинктакаса?

За разбирането, Иво

Отговори:

3 за отговор № 1

Извикайте бутона си AsyncTask.cancel(true) и след това проверете isCancelled() отвътре doInBackground(Params... params), По този начин можете да съобщите на фоновата нишка, че изтеглянето трябва да бъде отменено и можете да предприемете необходимите стъпки, за да го спрете.


3 за отговор № 2

Бих се обадил затвори (истина) на вашия обект AsyncTask. Това ще прекъсне нишката ви чрез нормално прекъсване, След това можете да попитате AsyncTask дали е така isCancelled ().


0 за отговор № 3

Бих ви предложил да преминете през тази връзка за тъмната страна на AsyncTasks: http://bon-app-etit.blogspot.in/2013/04/the-dark-side-of-asynctask.html .

Google пусна библиотека, наречена "Volley", която се използва в наши дни за по-бърза и по-добра работа в мрежа.

Това решава Лоши точки от AsyncTasks.

Отмяна на заявката с волейбол