2016-09-14 2 views
0

Я хочу загрузить данные с сервера синхронно и показать его в виде, например ListView или TextView, без какого-либо запроса на вытягивание. Мне нужно, чтобы данные были загружены, если на сервере произошли какие-либо изменения.проверять и извлекать данные с сервера постоянно в приложении Android

В настоящее время я использую asynctask для извлечения данных с сервера, но для загрузки новых данных или обновления мне нужно сделать запрос на загрузку с помощью кнопки перезагрузки.

Я попробовал это, используя поток, который будет работать через определенное время. Но я знаю, что, возможно, может быть какой-то лучший метод.

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

Например, приложение gmail загружает новые электронные письма, когда есть доступ к сети, без какого-либо запроса от пользователя. Мне нужно то же самое в Android-приложении.

Заранее спасибо.

+0

Рассмотрите Google Firebase? –

ответ

2
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 
} 

The AsyncTask мчит на отдельном потоке, но не может быть запущен из других потоков, чем UI thread. Для этого разрешен обработчик.