Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
bako-95
9 / 9 / 4
Регистрация: 27.04.2015
Сообщений: 112
#1

Как остановить AsyncTask? - Программирование Android

25.08.2015, 22:32. Просмотров 879. Ответов 2
Метки нет (Все метки)

Не ругайтесь на код с Asynctask работаю только несколько дней

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
class MyTask extends AsyncTask<Void, Void, Void> {
        @Override
        protected void onPreExecute() {
        }
 
        @Override
        protected Void doInBackground(Void... params) {
            try {
                TimeUnit.SECONDS.sleep(5);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            return null;
        }
 
        @Override
        protected void onPostExecute(Void result) {
            super.onPostExecute(result);
            TextView BeforeGold = (TextView) findViewById(R.id.CoastGold); //Берем нынешний курс
            course = course + 1;
 
//Если course больше трех, запускаем  GoldNews0()
            if (course > 3) {
                GoldNews0();
                course = 0;
            }
 
            sPref = getSharedPreferences("GLOBAL_GOLD_MASS", MODE_MULTI_PROCESS); //Файл массы
            String savedText = sPref.getString(GLOBAL_GOLD_MASS, ""); //Загружаем массу
            double mass = Double.valueOf(savedText); //Переводим его в double
            double AfterGold = Integer.valueOf(BeforeGold.getText().toString()) + (Integer.valueOf(BeforeGold.getText().toString()) * (Double.valueOf(mass) * 0.01)); //Вычисляем новый курс
            int AfterGold2 = Integer.valueOf((int) AfterGold);
            CoastGold.setText("" + AfterGold2); //Выводим новый курс
//Если ценность падает, цвет становится красным
            if (mass < 0) {
                CoastGold.setTextColor(getResources().getColor(R.color.Red));
            } else {
                CoastGold.setTextColor(getResources().getColor(R.color.Green));
            } //При повышений цены цвет становится зеленым
//Выводим значение массы
            mass1.setText("" + savedText);
//Сохраняем цену золота
            saveGoldCourse();
//Перезапускаем  MyTask()
            mt = new MyTask();
            mt.execute();
        }
    }
Надо любым способом уничтожить данный асинктаск в

Java
1
2
3
public void onBackPressed() {
 
    }
но как?

Добавлено через 6 минут
можно хоть весь активити уничтожить
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.08.2015, 22:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как остановить AsyncTask? (Программирование Android):

Как приостановить doInBackground() из AsyncTask - Программирование Android
Здравствуйте. Есть экземпляр AsyncTask и активити с WebView. AsyncTasd выполняет действия с сетью, передает некий url WebView....

Как обновить TextView с AsyncTask? - Программирование Android
private class DownloadFilesTask extends AsyncTask&lt;String, Integer, Long&gt; { protected Long doInBackground(String... urls) { ...

AsyncTask как дождаться окончания - Программирование Android
Всем привет. Ситуация следующая. Есть активити &quot;MyTravelList&quot; со списком, которое после нажатия на кнопку, запускает другое активити...

Как из AsyncTask Добавить элементы в ListView - Программирование Android
В общем сабж. Используя адаптер как сделать?

Как получить значение String из UI потока в потоке AsyncTask? - Программирование Android
Есть 4 шт. EditText. Нужно получить их значения в потоке AsyncTask. Вот весь мой код package com.examplemy.activity2; ...

Как написать простейший запрос на сервер без использование AsyncTask - Программирование Android
как написать простейший запрос на сервер? без использование AsyncTask. у меня есть локальный сервер который возвращает JSON адрес...

2
Pablito
2477 / 1961 / 611
Регистрация: 12.05.2014
Сообщений: 6,866
Завершенные тесты: 1
25.08.2015, 22:34 #2
никак
просто в onPostExecute() перед тем как что-то менять или обращаться к элементам экрана проверяй контекcт на null и все

и что-то другое вызывать из асинктаска тоже не кошерно, я про GoldNews0();
0
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
25.08.2015, 22:41 #3
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Вот так переписать класс.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
class MyTask extends AsyncTask<Void, Void, Void>{
 
 
        private boolean isStop = false;
        
        public void stop(){
            isStop = true;
        }
 
        @Override
        protected Void doInBackground(Void... params) {            
            while(!isStop){
                try {
                    Thread.sleep(5000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                publishProgress();
            }
            
            return null;
        }
 
        @Override
        protected void onProgressUpdate(Void... values) {
            super.onProgressUpdate(values);
            //Тут операции из onPostExecute.
        }
    }
и потом
Java
1
task.stop();
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.08.2015, 22:41
Привет! Вот еще темы с ответами:

Как реализовать Синхронное выполнение двух функций при вызове AsyncTask - Программирование Android
как сделать так чтобы при нажатии на BUTTON с начало выполнилась функция getSignIns а после удачного выполнения выполнялась ...

Как остановить анимацию - Программирование Android
Доброго времени суток. Есть две анимации которые работают по очереди, необходимо через определённое количество циклов остановить этот...

Как остановить и восстановить приложение? - Программирование Android
Значится так. Я пишу свое первое приложение, тестирую на Android 4.4. Если я зажимаю левую кнопку появляется стандартная меню для очистки...

Как остановить сервис по нажатию на Notification - Программирование Android
в сервисе создаю сообщение: NotificationCompat.Builder builder = new NotificationCompat.Builder(this); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru