以下列方式检查小时是个好主意吗?

时间:2014-07-18 08:39:11

标签: android android-service

我想提供服务,每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();
    }

2 个答案:

答案 0 :(得分:1)

绝对应该使用AlarmManagerIntentService。这两个更节省电池和灵活。您需要做的就是设置警报并处理您的意图操作。

答案 1 :(得分:0)

IMO使用ScheduledExecutorService的最佳方式是每2小时执行一次线程:

ScheduledExecutorService scheduleTaskExecutor = Executors.newScheduledThreadPool(5);

scheduleTaskExecutor.scheduleAtFixedRate(new Runnable() {
  public void run() {
    checkForUpdate();
  }
}, 0, 2, TimeUnit.HOURS);