Ada*_*dam 1 android alarmmanager
如何在最近的一小时内启动AlarmManager?例如,当用户点击按钮并且时间是12:32时,我想在13:00开始服务,然后每小时重复一次,我尝试了这段代码,但它不起作用,它只在一小时后启动AlarmManager,所以如果时间是12:32,它将在13:32开始服务.
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, cal.get(Calendar.HOUR_OF_DAY)+1);
AlarmManager alarm = (AlarmManager)myService.this.getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(myService.this, AlarmReceiver.class);
PendingIntent pIntent = PendingIntent.getBroadcast(BatteryService.this, 0, i, 0);
alarm.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 1000*60*60, pIntent);
Run Code Online (Sandbox Code Playgroud)
创建日历实例时,其时间是当前时间.在你的例子中12:32.然后你添加一个小时的一天.现在是13:32.您需要将分钟(和秒)设置为0:
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0); // well ...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1119 次 |
| 最近记录: |