我已經看到了很多關於創建AlarmManager並在特定日期提出通知的教程,但我想知道如何在X天前完成。Android - 如何在特定日期前X天設置鬧鐘
舉例來說,如果我有2014年1月8日的事件,我想之前,2014年1月1日一週設置它,我只想設置報警,因爲這:
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.MONTH, 1);
calendar.set(Calendar.YEAR, 2013);
calendar.set(Calendar.DAY_OF_MONTH, Day-7);
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.AM_PM,Calendar.AM);
Intent myIntent = new Intent(MainActivity.this, MyReceiver.class);
pendingIntent = PendingIntent.getBroadcast(MainActivity.this, 0, myIntent, 0);
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
但是什麼如果事件發生在2014年1月4日,那麼我想將日期設置爲2013年12月28日。是否有可以執行此操作的功能?還是我必須寫很多案例?
今天和X天差異,將差異轉換爲毫秒並將該值添加到calendar.getTimeInMillis()+ difference_days_into_milisecond –
1 - 爲什麼? 2 - 您不能:如果當前時間在鬧鐘時間之後,鬧鐘將立即開始播放。 –
1 - 因爲我想在特定截止日期之前收到任務通知。 2 - 此外,這是一個假設的日期。不是真正的約會。我舉了一個例子。 – user2525236