我想提供服务,每2小时检查一次更新。 以下列方式做到这一点是个好主意吗?
boolean canceled = false;
public void onCreate() {
super.onCreate();
final Calendar c = Calendar.getInstance();
new Thread(new Runnable() {
public void run() {
while (!canceled) {
int hour = c.get(Calendar.HOUR_OF_DAY);
if (hour % 2 == 0) {
checkForUpdate();
}
}
}
}).start();
}
答案 0 :(得分:1)
绝对应该使用AlarmManager和IntentService。这两个更节省电池和灵活。您需要做的就是设置警报并处理您的意图操作。
答案 1 :(得分:0)
IMO使用ScheduledExecutorService
的最佳方式是每2小时执行一次线程:
ScheduledExecutorService scheduleTaskExecutor = Executors.newScheduledThreadPool(5);
scheduleTaskExecutor.scheduleAtFixedRate(new Runnable() {
public void run() {
checkForUpdate();
}
}, 0, 2, TimeUnit.HOURS);