2012-12-22 96 views
3

我想在特定日期和時間顯示對話框(2012年12月25日12:00),並且正在使用此代碼。我設置爲11個月(因爲0是gen),但報警不啓動。我的錯誤是什麼?特定日期和時間的AlarmManager

Calendar cal=Calendar.getInstance(); 
    cal.set(Calendar.MONTH,11); 
    cal.set(Calendar.YEAR,2012); 
    cal.set(Calendar.DAY_OF_MONTH,25); 
    cal.set(Calendar.HOUR_OF_DAY,12); 
    cal.set(Calendar.MINUTE,00); 
    cal.set(Calendar.SECOND,0); 

Intent _myIntent = new Intent(context, Notify.class); 
    PendingIntent _myPendingIntent = PendingIntent.getBroadcast(context, 123, _myIntent, PendingIntent.FLAG_UPDATE_CURRENT| Intent.FILL_IN_DATA); 

AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); 
alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), _myPendingIntent); 

回答

7

看看下面的代碼約我我如何去設置爲12月當月報警:

// for Alarm 25/12/2012 at 12.00 
Calendar myAlarmDate = Calendar.getInstance(); 
myAlarmDate.setTimeInMillis(System.currentTimeMillis()); 
myAlarmDate.set(2012, 11, 25, 12, 00, 0); 
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); 

Intent _myIntent = new Intent(context, AlarmReceiverNotificationForEveryMonth.class); 
_myIntent.putExtra("MyMessage","HERE I AM PASSING THEPERTICULAR MESSAGE WHICH SHOULD BE SHOW ON RECEIVER OF ALARM"); 
PendingIntent _myPendingIntent = PendingIntent.getBroadcast(context, 123, _myIntent, PendingIntent.FLAG_UPDATE_CURRENT); 
alarmManager.set(AlarmManager.RTC_WAKEUP, myAlarmDate.getTimeInMillis(),_myPendingIntent); 

就可以更新你的意圖和類上面的代碼,你會得到你的願望輸出。

希望這對你有所幫助。

+0

謝謝。我的代碼在哪裏出錯? –

+0

你必須使用精確的日期,月份和時間來設置TimeInMillis(System.currentTimeMillis()) –

+0

@PolHallen:這個代碼適合你嗎? –