サービスを作成して開始するアプリケーションがあります。次に、サービスがスレッドを作成します。スレッドのこの役割は、何らかのタスクを実行して 5 秒間スリープし、その後再びタスクを実行して 5 秒間スリープするということです。
私が直面している問題は、スレッドが 5 秒間スリープする代わりに、最大 2 分間起きないことがあります。私は、Android システムが優先度の高い作業を実行できることを理解しています。これにより、スレッドのウェイクアップに遅延が生じる可能性があります。スレッドが常に 5 秒後にウェイクアップするように改善する方法はありますか。
サービス onCreate() のコード。遅延を計算するために、タイムスタンプ付きの「スレッド実行中」をログ ファイルに記録していることに注意してください。
@Override
public void onCreate() {
logger.Log("MTrackService::onCreate()");
thMain = new Thread(new Runnable() {
public void run() {
while(running) {
logger.Log("Thread Running");
try {
//Do Stuff
Thread.sleep(5*1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
running = false;
}
}
}
});
thMain.start();
}
前もって感謝します。