我有一个创建和启动服务的应用程序。然后服务创建一个线程。这个线程的作用是做一些任务,休眠5秒,然后再做任务,休眠5秒,以此类推。
我面临的问题是,有时,线程不会在 2 分钟内醒来,而不是睡 5 秒。我了解 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();
}
提前致谢。