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

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

Войти
Регистрация
Восстановить пароль
 
Eserchik
0 / 0 / 0
Регистрация: 04.06.2012
Сообщений: 21
#1

Возобновление работы потока в AsyncTask - Программирование Android

23.02.2015, 18:59. Просмотров 321. Ответов 1
Метки нет (Все метки)

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

В MainActivity:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    public void onPause() {
        super.onPause();
         Log.d("Logs", "onPause");
         if(DialogStartGameFirstPlayer.timerGame!=null){
               DialogStartGameFirstPlayer.timerGame.pause();
           }
        }
 
    
    @Override
    public void onResume() {
        super.onResume();  
        Log.d("Logs", "onResume");
        if(DialogStartGameFirstPlayer.timerGame!=null){
            DialogStartGameFirstPlayer.timerGame.resume();
          }
    }
А вот AsyncTask:

//Методы остановки/перезапуска
Java
1
2
3
4
5
6
7
8
9
public void pause()
    {
        this.isPaused = true;
    }
 
    public void resume()
    {
        this.isPaused = false;
    }


//doInBackground
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
@Override
    protected Void doInBackground(Void... params) {
 
           
                for(i=60;i>=0;i--){
                if(!isPaused){
                    try {
                        TimeUnit.SECONDS.sleep(1);
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    
                      publishProgress(i);
                      Log.d("Logs", "Timer:" +i);
                      
                  }else{
                    try {
                        TimeUnit.SECONDS.sleep(1000);
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            }
  
 
      return null;
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.02.2015, 18:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Возобновление работы потока в AsyncTask (Программирование Android):

Завершение потока AsyncTask - Программирование Android
Доброго времени суток. Возникла проблема с закрытием потока. Первый раз код выполняется и все норм, но т.к. при нажатии на кнопку...

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

Дождаться завершения работы AsyncTask и выполнять код дальше - Программирование Android
Помогите, пожалуйста. Мне нужно дождаться завершения работы AsyncTask и только потом выполнять код дальше. Я уже понял, что для этого нужно...

Возобновление main_activity - Программирование Android
Приветствую уважаемые! Возникла следующая проблема Имеем следующее: 1 - main_activity 2 - second_activity На главной...

Activity, сворачивание / возобновление - Программирование Android
Заранее извиняюсь за то, что плохо искал в гугле, но времени уже почти нет. У меня есть 2 activity. Из первого запускаю второе. Далее,...

Activity (сворачивание-возобновление-закрытие) - Программирование Android
Народ помогите разобраться с проблемой. Думаю труда не составит ))) написал игру, пользовался surfaceview. Есть две проблемы, когда...

1
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
23.02.2015, 19:18 #2
делай метод, который вернет тебе true если таймер досчитал до предела, и ставь его в цикл while
Java
1
2
3
4
5
6
7
while(!isEnd()){
if(!isPaused){
 // код отсчета
 }else{
  // нет отсчета
 }
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.02.2015, 19:18
Привет! Вот еще темы с ответами:

AsyncTask - Программирование Android
Привет. Знаю, что в AsyncTask doInBackground() обращатся к компонентам UI нельзя. Когда я пытаюсь обновить вывод (в EditText) в...

AsyncTask - Программирование Android
Здравствуйте, при использовании двух одинаковых методов получается разный результат. AsyncTask в одном случае успешно передает данные в...

AsyncTask - Программирование Android
Использую AsyncTasc class MyT extends AsyncTask<Void, Void, Void> { @Override protected Void doInBackground(Void......

AsyncTask и get() - Программирование Android
Создаю асинхронный процесс, где в onPreExecute() запускаю анимированный ProgressDialog. После выполнения задачи нужно выполнить действия....


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

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

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