Регулярная проверка из сервиса

Рейтинг: 0Ответов: 2Опубликовано: 14.01.2015

Как можно организовать регулярную проверку потраченных мобильных данных в сервисе на андроиде?

Думаю, в цикле запускать

Thread.sleep(1800000);

не хороший вариант. Что можно предложить?

Обновление

Я хочу проверять потраченный трафик мобильных данных, мониторить хочу через сервис и думал, может, запускать проверку трафика регулярно каждый час.
Но ведь не вариант запускать это в цикле вот так:

while(true){
Thread.sleep(3600000);
int mob = TrafficStats.getMobileTX;}

Ответы

▲ 3Принят

В вашем сервисе объявите хэндлер

   WeakHandler mHandler;    
   long interval_update = 1800000;

    @Override
        public void onCreate() {
            super.onCreate();
            mHandler = new WeakHandler();
        }

    Runnable mHandlerTask = new Runnable() {
                @Override
                public void run() {
                    if (mHandler != null) {
                        // вызов вашей функции сбора данных о трафике
                        mHandler.postDelayed(mHandlerTask,    
                                                   interval_update);
                    }
                }
            };
▲ 3

Вы совершенно неверно ставите вопрос. Вы думаете, что вопрос "Как регулярно запускать проверку потраченных данных из сервиса?" чем-то отличается от вопроса "Как регулярно выполнять код?"?
Это совершенно одинаковые вопросы с точки зрения решения. А теперь подумайте, на какой вопрос вероятнее будет уже дан ответ - на более специфический или более общий? Конечно же более общий. То есть вам нужно было спросить "Как регулярно выполнять код?". А на этот вопрос ответ давался уже несколько тысяч раз, чему гугл в подтверждение.
Скажу больше. Для этих задач существует специальная классная штука, которая называется AlarmManager.