我需要一个轮询线程来每5分钟执行一些网络操作。我想出了以下两个解决方案。哪个更好,为什么?我希望有最低的CPU和电池使用率。
pollThread = new Thread(){
public void run(){
while(toggle) {
// Do stuff
sleep(FIVE_MINUTES);
}
}
};
pollThread.start();
OR
Runnable doStuffRunnable = new Runnable() {
@Override
public void run() {
// Do stuff
handler.postDelayed(this, FIVE_MINUTES);
}
}
答案 0 :(得分:0)
答案取决于您是否使用处理程序来处理其他任务。如果没有,那就不会有太大差别;仍然会有一个线程每隔5分钟醒来就能做你想做的事。如果处理程序还处理其他任务,那么使用处理程序可能比为每个任务设置单独的线程更有效,因为它只需要一个线程,并且可能在处理器使用方面有优化。