让服务在一天的不同时间运行

时间:2014-05-24 16:55:42

标签: android android-service

我需要运行一个应用程序,在特定时间每天运行四次。 我写了这段代码,有人告诉我这是一个糟糕的方式。我不知道是否有更好的方法可以做到这一点。

Intent myIntent = new Intent(this,MyService.class);
    pendingIntent = PendingIntent.getService(this, 0,myIntent, 0);
    AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
    Calendar calendar = Calendar.getInstance();
    calendar.setTimeInMillis(System.currentTimeMillis());
    calendar.add(Calendar.SECOND, 60);
    alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 60*1000, pendingIntent);

它每分钟都在调用MyService。 有没有办法在特定时间运行服务?

1 个答案:

答案 0 :(得分:1)

每分钟唤醒手机都非常耗电 - 如果你只需要每天运行4次,你可以按照6小时的间隔安排它。您可能还想考虑除RTC_WAKEUP之外的其他内容(例如RTC),以便在睡眠时不会不必要地唤醒手机。如果你真的不在乎它什么时候关闭,那么没有理由明确唤醒设备。

应用程序执行此操作的方式是监视更改,然后他们轮询他们的服务器,将其更新版本与服务器上的最新版本进行比较,如果服务器有更新的更新,则将其拉出。您可以在此处了解如何监视网络连接更改: http://viralpatel.net/blogs/android-internet-connection-status-network-change/