Intereting Posts
Android – Как удалить View в макете (динамический просмотр добавлен) Shape Drawable parameters в зависимости от применяемого стиля Android: поднять AlertDialog из фоновой темы PhoneGap для Android не принимает ключ 9 Хранение базы данных SQLite с помощью Android и Phonegap Android sdk требует инструментария разработчика Android версии 22.6.1 или выше SQLite – Не удалось открыть файл базы данных В чем разница между TypedArray.getInteger () и TypedArray.getInt ()? Flurry аналитики не сообщают о каких-либо обновлениях на Android Соедините два аудиофайла и воспроизведите полученный файл Как использовать layoutinflator для добавления просмотров во время выполнения? Android Studio отказывается принять, что Google Repository установлен Который является самым безопасным способом включения пары ключей (общедоступных / частных) в apk Android: как рисовать маршруты маршрутов Google Maps API V2 от текущего местоположения до пункта назначения Нарушение счетчика активности экземпляра StrictMode (2 экземпляра, 1 ожидается) при вращении полностью пустой активности

Как отменить AsyncTask при завершении операции?

В моей работе я использую несколько классов AsyncTask.

Как отменить AsyncTask при завершении операции?

Solutions Collecting From Web of "Как отменить AsyncTask при завершении операции?"

Я не понимаю, если ваш «отменить» означает откат, но у вас есть метод отмены в классе AsyncTask .

Я думаю, что лучшее место для этого – onStop

 protected void onStop() { super.onStop(); /* * The device may have been rotated and the activity is going to be destroyed * you always should be prepared to cancel your AsnycTasks before the Activity * which created them is going to be destroyed. * And dont rely on mayInteruptIfRunning */ if (this.loaderTask != null) { this.loaderTask.cancel(false); } } 

В моей Задаче я проверяю как можно чаще, если был вызван отмена

 protected String doInBackground(String... arg0) { if (this.isCancelled()) { return null; } } 

И, конечно же, не забудьте удалить данные, которые могут быть возвращены, поскольку нет больше действий для его получения

 protected void onPostExecute(List<UserStatus> result) { if(!this.isCancelled()) { //pass data to receiver } } 

Асинхронный поток сохраняется в пуле потоков для будущих событий AsyncTask. Вы не можете удалить их.