我正在開發一個應用程序,應該在後臺定期執行一些任務(10秒)。爲此,我使用Service和Timer。在計時器中要完成的實際工作是:
1)從手機(使用ContentResolver)將數據收集到SQLite數據庫中,
2)使用HttpPost方法同步發送此數據到遠程服務器。Android定時器和更改期間
接下來的問題是:經過一些迭代(這些迭代的次數會更改應用程序的每次執行)計時器會更改其週期並開始執行1-3秒的所有任務(有時最多9次,但總是更低比10秒)延遲,這在我的情況下速度太快,我找不到原因。 有沒有人曾經面對類似的行爲?
我試過使用不同的線程上傳和收集計時器任務內,但它沒有解決問題。
這裏是我的代碼片段:
public class DataForward extends Service{
private Context con = getBaseContext();
private Timer timer = new Timer();
<...>
@Override
public void onStart(Intent intent, int startId) {
timer.schedule(new TimerTask(){
@Override
public void run() {
try {
updateData();
NetworkManager network = new NetworkManager(con);
if(network.isConnectedToTheInternet())
uploadData();
} catch (Exception e) {
e.printStackTrace();
}
}}, 0, 10000);
}
}
<...>
}
或者,也許有另一種方式來做到這一點沒有實際的計時器? 任何想法?