2017-05-25 72 views
1

我需要每10分鐘定期從服務器刷新一次recyclerview。目前我正在爲應用程序實現MVP體系結構。以下是我認爲的方法列表。在Mvp定期刷新實施android

  1. 我是否需要在演示者中使用Observable.interval來每隔10分鐘完成一次api調用?
  2. 由於用戶在未使用應用程序時不應該看到任何更新,因此我沒有使用服務或broadcastrecevier。

我應該如何處理這個問題,任何幫助都會非常有用。

感謝, Shanthi

回答

0

使用定時器

int mins = 10; // The delay in minutes 
Timer timer = new Timer(); 
timer.schedule(new TimerTask() { 
@Override 
public void run() { 
    //perform your task 
    yourAdapter.notifyDataSetChanged(); 
} 
}, 0, 1000 * 60 * mins); 
+0

謝謝您的答覆。 上面的實現只是刷新適配器,但它不會進行任何api調用。我需要每10分鐘撥打一次服務器電話。我應該在run()方法中使用主持人調用嗎? –

+0

是在run()方法內調用您的presenterl .. – sasikumar

0
Disposable disposable = Observable.interval(10, TimeUnit.MINUTES) 
       .observeOn(AndroidSchedulers.mainThread()) 
       .subscribeOn(Schedulers.newThread()) 
       .subscribe(run->{ 
         you_presenter.getAllData(); 
       }); 


@override 
public void showList(Data data){ 
    yourAdapter.addData(data); 
    yourAdapter.notifyDataSetChanged(); 
}