Как выполнять задачу Async повторно после фиксированных интервалов времени

Как сделать задачу Async выполняться повторно через некоторый временной интервал, точно так же, как и Timer … На самом деле я разрабатываю приложение, которое автоматически загрузит все последние непрочитанные приветствия с сервера, и для этого мне нужно проверить наличие обновлений с сервера после некоторого фиксированного временные интервалы …. Я знаю, что это можно легко сделать с помощью таймера, но я хочу использовать async-задачу, которая, по моему мнению, более эффективна для приложений Android.

    public void callAsynchronousTask() { final Handler handler = new Handler(); Timer timer = new Timer(); TimerTask doAsynchronousTask = new TimerTask() { @Override public void run() { handler.post(new Runnable() { public void run() { try { PerformBackgroundTask performBackgroundTask = new PerformBackgroundTask(); // PerformBackgroundTask this class is the class that extends AsynchTask performBackgroundTask.execute(); } catch (Exception e) { // TODO Auto-generated catch block } } }); } }; timer.schedule(doAsynchronousTask, 0, 50000); //execute in every 50000 ms } 
      //Every 10000 ms private void doSomethingRepeatedly() { Timer timer = new Timer(); timer.scheduleAtFixedRate( new TimerTask() { public void run() { try{ new SendToServer().execute(); } catch (Exception e) { // TODO: handle exception } } }, 0, 10000); } 

    Вы можете просто обработчик:

     private int m_interval = 5000; // 5 seconds by default, can be changed later private Handle m_handler; @Override protected void onCreate(Bundle bundle) { ... m_handler = new Handler(); } Runnable m_statusChecker = new Runnable() { @Override public void run() { updateStatus(); //this function can change value of m_interval. m_handler.postDelayed(m_statusChecker, m_interval); } } void startRepeatingTask() { m_statusChecker.run(); } void stopRepeatingTask() { m_handler.removeCallback(m_statusChecker); } 

    Но я бы рекомендовал вам проверить эту структуру: http://code.google.com/intl/de-DE/android/c2dm/. Это другой подход: сервер будет уведомлять телефон, когда что-то будет готово (таким образом, пропускная способность и производительность :))

    не было бы более эффективно создавать сервис и планировать его через Alarm Manager?

    Interesting Posts

    Windows 8 не обнаруживает трекпад MacBook Pro

    Коллекции. Синхронизированный список и синхронизация

    VBA: преобразовать текст в число

    Как проверить события открытия лотка для CD / DVD в Windows 7?

    Как скопировать что-то в www-каталог Apache с помощью графического интерфейса?

    Стандартный способ удаления нескольких элементов из фрейма данных

    Команда изменения Mac OS для управления ключом

    ListView повторно использует представления, когда … Я не хочу, чтобы он

    java.lang.NoSuchMethodError: javax.persistence.spi.PersistenceUnitInfo.getValidationMode () Ljavax / persistence / ValidationMode;

    Наследовать интерфейсы, которые совместно используют имя метода

    iTextSharp сгенерировал PDF: как отправить PDF-файл клиенту и добавить приглашение?

    Как разбивать Firestore на Android?

    Получение объекта «DatabaseOperations» не имеет атрибута «geo_db_type» при выполнении syncdb

    Студия Android Studio занимает слишком много времени для создания

    Как использовать Json.NET для JSON-моделирования в проекте MVC5?

    Давайте будем гением компьютера.