Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Eserchik
0 / 0 / 0
Регистрация: 04.06.2012
Сообщений: 21
1

Возобновление работы потока в AsyncTask

23.02.2015, 18:59. Просмотров 384. Ответов 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
Доброго времени суток. Возникла проблема с закрытием потока. Первый раз код...

Как получить значение String из UI потока в потоке AsyncTask?
Есть 4 шт. EditText. Нужно получить их значения в потоке AsyncTask. Вот весь...

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

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

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

1
Nixy
ComfyMobile
400 / 281 / 34
Регистрация: 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

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

AsyncTask и get()
Создаю асинхронный процесс, где в onPreExecute() запускаю анимированный...

AsyncTask
Использую AsyncTasc class MyT extends AsyncTask<Void, Void, Void> { ...


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

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

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