バックグラウンドで定期的に(10秒間)何らかのタスクを実行するアプリケーションを開発しています。このため私はサービスとタイマーを使います。タイマーで実行される実際のジョブは次のとおりです。
1)Phoneから(ContentResolverを使用して)SQLiteデータベースにデータを収集します。
2)HttpPostメソッドを使用してこのデータをリモートサーバーに同期して送信します。Androidのタイマーと期間の変更
問題は次のとおりです:いくつかの繰り返しの後(これらの繰り返しはアプリケーションの実行ごとに変更されます)タイマーは期間を変更し、すべてのタスクを1〜3秒で開始します私の場合は速すぎるので、私は理由を見つけることができません。 誰も前に同様の動作に直面していますか?
タイマータスクの内部でアップロードと収集に異なるスレッドを使用しようとしましたが、問題は解決しませんでした。
ここに私のコードスニペットです:
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);
}
}
<...>
}
それとも実際のタイマーなしでこれを行うための別の方法がありますか? すべてのアイデア?