如何在固定的時(shí)間間隔后重復(fù)執(zhí)行異步任務(wù)如何在一段時(shí)間間隔之后重復(fù)執(zhí)行異步任務(wù),就像Timer一樣...實(shí)際上我正在開(kāi)發(fā)一個(gè)應(yīng)用程序,它會(huì)自動(dòng)從服務(wù)器下載所有最新的未讀問(wèn)候語(yǔ),為此我必須在修復(fù)后檢查服務(wù)器的更新時(shí)間間隔....我知道可以通過(guò)計(jì)時(shí)器輕松完成,但我想使用異步任務(wù),我認(rèn)為對(duì)Android應(yīng)用程序更有效。
3 回答

慕俠2389804
TA貢獻(xiàn)1719條經(jīng)驗(yàn) 獲得超6個(gè)贊
//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); }

繁花如伊
TA貢獻(xiàn)2012條經(jīng)驗(yàn) 獲得超12個(gè)贊
你可以只是一個(gè)處理程序:
private int m_interval = 5000; // 5 seconds by default, can be changed laterprivate Handle m_handler;@Overrideprotected 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);}
但我建議您檢查一下這個(gè)框架:http://code.google.com/intl/de-DE/android/c2dm/是一種不同的方法:服務(wù)器會(huì)在準(zhǔn)備就緒時(shí)通知手機(jī)(因此,節(jié)省一些帶寬和性能:))
- 3 回答
- 0 關(guān)注
- 587 瀏覽
添加回答
舉報(bào)
0/150
提交
取消