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

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

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

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

23.02.2015, 18:59. Просмотров 297. Ответов 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;
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.02.2015, 18:59     Возобновление работы потока в AsyncTask
Посмотрите здесь:

Android Activity (сворачивание-возобновление-закрытие)
Завершение потока AsyncTask Android
Android AsyncTask
Android Как получить значение String из UI потока в потоке AsyncTask?
Android AsyncTask и get()
Activity, сворачивание / возобновление Android
AsyncTask Android
AsyncTask и SQLite Android
Android Дождаться завершения работы AsyncTask и выполнять код дальше
AsyncTask Android
Android AsyncTask тормозит
Android Не работает AsyncTask

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
23.02.2015, 19:18     Возобновление работы потока в AsyncTask #2
делай метод, который вернет тебе true если таймер досчитал до предела, и ставь его в цикл while
Java
1
2
3
4
5
6
7
while(!isEnd()){
if(!isPaused){
 // код отсчета
 }else{
  // нет отсчета
 }
}
Yandex
Объявления
23.02.2015, 19:18     Возобновление работы потока в AsyncTask
Ответ Создать тему
Опции темы

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