Android 用下面的方法检查小时是不是好主意?
我想做的服务,将检查更新每2小时。 按照下面的方法做是个好主意吗Android 用下面的方法检查小时是不是好主意?,android,android-service,Android,Android Service,我想做的服务,将检查更新每2小时。 按照下面的方法做是个好主意吗 boolean canceled = false; public void onCreate() { super.onCreate(); final Calendar c = Calendar.getInstance(); new Thread(new Runnable() { public void run() { w
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();
}
IMO最好的方法是使用ScheduledExecutorService,它将每2小时执行一次线程:
ScheduledExecutorService scheduleTaskExecutor = Executors.newScheduledThreadPool(5);
scheduleTaskExecutor.scheduleAtFixedRate(new Runnable() {
public void run() {
checkForUpdate();
}
}, 0, 2, TimeUnit.HOURS);
当然你应该使用and。这两种方法更节省兵力,也更灵活。你所需要做的就是设置警报并处理你的意图 如果您使用AlarmManager类来设置时间广播,它将对电池更加友好。这将只运行一次execute,因为您创建的线程没有循环。请改用AlarmManager。您可以使用Timer my friend。第一:使用AlarmManager第二:它不工作。创建服务时,线程只执行代码一次。