alarmManager在不等待指定时间的情况下触发intent

时间:2014-07-05 21:33:33

标签: java android

我试图在指定时间启动一个意图打开wifi,但由于某种原因警报会立即触发。我用getTimeDifference作为参数调用setAlarm。我检查了log.e和getTimeDifference返回的时间是准确的,但它仍然会立即触发

   public long getTimeDifference(){
    Date current = new Date();
    Date future = new Date();
    future.setHours(time.getCurrentHour());
    future.setMinutes(time.getCurrentMinute());
    if((future.getTime() - current.getTime()) < 0){
        future.setDate(future.getDate()+1);
    }
    return  future.getTime() - current.getTime();
}
public void setAlarm(long time){
    Intent intent = new Intent(Volume.this,RadioService.class);
    PendingIntent pendingIntent = pendingIntent = PendingIntent.getService(
            Volume.this, 0, intent, 0);
    String sd = "time is:" + time;
    Log.e("time dif", sd);
    alarm.set(AlarmManager.RTC_WAKEUP, time, pendingIntent);
}

1 个答案:

答案 0 :(得分:1)

RTC_WAKEUP想要UTC的实际时间,而不是差异。