2016-09-22 4 views
1

Мне нужен поток, повторяющийся через 30 секунд, который загружает данные из веб-службы. Я хочу остановить и начать поток onResume и onPause, чтобы он работал, когда экран активен, и отключите его, когда действие приостановлено. Перезагрузите резюме.Повторный запуск/остановка Android после определенного времени

new Handler().postDelayed(new Runnable() { 

     @Override 
     public void run() { 
      dataIfInternet(refreshTop); 
     } 

    }, 30000); 

Как остановить его, когда действие приостановлено.

+0

* Как остановить его, когда деятельность приостановлена. * Серьезно? 1. наивный способ: выполнить некоторую проверку перед вызовом 'dataIfInternet' 2. или ... проверить документы обработчика, если есть способ удаления обратного вызова – Selvin

+0

Использовать GCMNetworkManager. –

+0

Любое refrence или образец GCMNetworkManager? –

ответ

0

U не паузы обработчик может, так и нужно, чтобы отменить его в и пост снова в вашем onResume

так у, вероятно, хотите что-то вроде этого:

private Handler myHandler = new Handler(); 

в ваш onResume()

Runnable myRunnable = new Runnable() 
{ 
    @Override 
    public void run() 
    { 
     dataIfInternet(refreshTop); 
    } 
}; 
myHandler.postDelayed(myRunnable, 30000); 

и в вашем onPause()

// Cancel the runnable 
myHandler.removeCallbacks(myRunnable); 

Я надеюсь, что это решит вашу проблему

Смежные вопросы