我遇到了AlarmManager的問題。我能夠設置報警,此代碼AlarmManager在特定時間內不會觸發
private void setAlarm(long when) {
Intent intent = new Intent(NoteActivity.this, AlarmReceiver.class);
intent.putExtra("ID", note.getId());
AlarmManager manager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
manager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, when, PendingIntent.getBroadcast(NoteActivity.this, 1, intent, PendingIntent.FLAG_UPDATE_CURRENT));
Toast.makeText(getApplicationContext(),"Reminder set up", Toast.LENGTH_SHORT).show();
}
此代碼工作得很好,如果我設置long when = 5 * 1000; \\For example 5secs later
,但如果我用
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
long selectedDate = date.getTime();
long timeSince1970 = System.currentTimeMillis();
long timeForAlarm = selectedDate - timeSince1970;
Intent intent = new Intent(NoteActivity.this, AlarmReceiver.class);
intent.putExtra("ID", note.getId());
AlarmManager manager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
manager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, timeForAlarm, PendingIntent.getBroadcast(NoteActivity.this, 1, intent, PendingIntent.FLAG_UPDATE_CURRENT));
Toast.makeText(getApplicationContext(),"Reminder set for "+calendar.getTime().toString(), Toast.LENGTH_SHORT).show();
我報警triggerd 2secs後來此代碼。我做錯了什麼? :/ 我試過AlarmManager.ELAPSED_REALTIME_WAKEUP
和AlarmManager.RTC_WAKEUP
,但沒有任何變化。
請不要檢查我的問題重複。我沒有找到可以解決我的問題的方法。
(提示:告訴社會不收東西爲重複的,如果它是一個真正的副本將不會改變任何東西在它最多隻能幫助它針對性更強。): - \ –
@JonAdams的確如此。哈哈 –