代码之家  ›  专栏  ›  技术社区  ›  HemalHerath

我怎么能每小时都用这个?现在每天16:30开始工作

  •  1
  • HemalHerath  · 技术社区  · 7 年前

    我正在创建通知系统,我需要每小时发出一次通知,但现在一天只发出一次

    protected void onStart() {
            super.onStart();
    
                Calendar calendar = Calendar.getInstance();
    
                calendar.set(Calendar.HOUR_OF_DAY, 16);
                calendar.set(Calendar.MINUTE, 30);
    
                Intent intent = new Intent(getApplicationContext(),NotificationReceiver.class);
    
                PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(),100,intent,PendingIntent.FLAG_UPDATE_CURRENT);
    
                AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
                alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),alarmManager.INTERVAL_DAY,pendingIntent);
    
            }
    
    3 回复  |  直到 7 年前
        1
  •  3
  •   Oussema Aroua    7 年前

    您正在使用 alarmManager.INTERVAL_DAY 因此它将每24小时执行一次,并用 alarmManager.INTERVAL_HOUR

        2
  •  1
  •   Bosco Sabin    7 年前
         alarmManager. setRepeating  (AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),  alarmManager.INTERVAL_HOUR,   pendingIntent);
    
        3
  •  0
  •   deHaar    7 年前

    public class ReminderTask extends TimerTask {
        public void run() {
           System.out.println("Reminding you of something!"); 
        }
    }
    

    然后像这样开始:

    Timer timer = new Timer();
    timer.schedule(new ReminderTask(), 0, 3600000); // one hour in millis