2017-01-23 14 views
0

Я совершенно новое в Android мир & нужна помощь о том, как создать & добавить интерфейс Handler, которые используют, чтобы остановить & перезапустить AsyncTask каждый 10сек. в то время как он активен (до событий касания экрана).Android Handler интерфейс для запуска/остановки AsyncTask

My AsyncTask используется для изменения цвета фона экрана каждые 2 сек. как показано ниже. Я использую Button.onClick, чтобы запустить AsyncTask & любое событие сенсорного экрана позже, чтобы остановить его.

public class MyAsynTask extends AsyncTask<Void, Void, Void> { 

    @Override 
    protected Void doInBackground(Void... params) { 
     Runasync = true; 
     while (Runasync) { 
      if (isCancelled()) { 
       break; 
      } 
      try { 

        Thread.sleep(2000); 

      } catch (InterruptedException e) { 
       e.printStackTrace(); 
      } 
      publishProgress(); 
     } 
     return null; 
    } 


    @Override 
    protected void onProgressUpdate(Void... values) { 
     ChangeBackgroudColor(); //Calling Method to change the background color. 
    } 
} 

ответ

0

Вы можете создать Timer & TimerTask с интервалом в 10 секунд.

Создать Handler, как указано в Главной теме.

enter image description here

Реализовать функциональность для START_ASYNC_TASK сообщения в вас обрабатывать сообщения коммутатора - Case и отменить существующий AsyncTask и начать новую AsyncTask здесь.

enter image description here

использование mHandler.post() методом в TimerTask, чтобы отправить сообщение на тему UI.

В вашей деятельности переопределение