2017-07-25 46 views
0

我創建了通知系統,我需要給通知每一個小時的工作,但現在它只是給一個一天我如何每隔一小時使用一次?現在它每天16.30

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); 

     } 

回答

2

您使用alarmManager.INTERVAL_DAY所以它會與執行每24小時改變它alarmManager.INTERVAL_HOUR

+0

使用,我可以刪除這些行權 calendar.set(Calendar.HOUR_OF_DAY,16)之後; calendar.set(Calendar.MINUTE,30); – HemalHerath

+0

準確的兄弟:) .. –

+0

所以你可以告訴我這些工作對於這些事情來說真的很新鮮。在哪個時間它會給第一個通知 – HemalHerath

0

作爲替代,您可以編寫自己的類,它擴展的TimerTask像

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 

但不可否認,Oussema Aroua的答案是在這種情況下要走的路...

0
 alarmManager. setRepeating (AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), alarmManager.INTERVAL_HOUR, pendingIntent); 
相關問題