Страницы

Поиск по вопросам

воскресенье, 8 декабря 2019 г.

Вечный Handler в сервисе

#android #vkontakte_api


Задача состоит в том, что бы каждые 10 секунд, в сервисе, проверять текст одной записи
на стене ВК.
Делаю через Runnable():

public void useHandler() {
    mHandler = new Handler();
    mHandler.postDelayed(mRunnable, 10000);
}


Насколько это нагрузочно для приложения и как вообще такое правильно реализовать?
    


Ответы

Ответ 1



Runnable task = new Runnable() { public void run() { //проверка записи на стене ВК } }; ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor(); scheduler.scheduleAtFixedRate(task, 0, 10, TimeUnit.SECONDS); Каждые 10 секунд будет выполнятся Runnable. Прекратить работу можно при помощи вызова scheduler.shutdown().

Ответ 2



Едва ли использование хэндлера нагрузит приложение сколько-нибудь сильно. Нагрузка будет идти от самого сервиса в общем. Правильнее было бы использовать Thread для этой задачи, т.к. логически он предназначен для долгоживущих операций, Хэндлер нужен скорее для одноразовой операции, выполняемой через какое-то время, и которая при этом не должна возвращать какое-либо значение (тут уже AsynkTask)

Комментариев нет:

Отправить комментарий