我需要运行一个应用程序,在特定时间每天运行四次。 我写了这段代码,有人告诉我这是一个糟糕的方式。我不知道是否有更好的方法可以做到这一点。
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。 有没有办法在特定时间运行服务?
答案 0 :(得分:1)
每分钟唤醒手机都非常耗电 - 如果你只需要每天运行4次,你可以按照6小时的间隔安排它。您可能还想考虑除RTC_WAKEUP之外的其他内容(例如RTC),以便在睡眠时不会不必要地唤醒手机。如果你真的不在乎它什么时候关闭,那么没有理由明确唤醒设备。
应用程序执行此操作的方式是监视更改,然后他们轮询他们的服务器,将其更新版本与服务器上的最新版本进行比较,如果服务器有更新的更新,则将其拉出。您可以在此处了解如何监视网络连接更改: http://viralpatel.net/blogs/android-internet-connection-status-network-change/