2016-02-01 242 views
-1

這是我的SetAlarm.class。這裏我根據日曆設置時間和日期。廣播接收機在給定時間內沒有廣播

   Calendar date = Calendar.getInstance(); 
      date.set(Calendar.YEAR, 2016); 
      date.set(Calendar.MONTH, 1); 
      date.set(Calendar.DAY_OF_MONTH, 29); 
      date.set(Calendar.HOUR_OF_DAY, 2); 
      date.set(Calendar.MINUTE, 43); 
      date.set(Calendar.SECOND, 0); 
      date.set(Calendar.AM_PM, Calendar.PM); 
      Intent myIntent = new Intent(SetAlarm.this,  MyReceiver.class); 
      pendingIntent = PendingIntent.getBroadcast(SetAlarm.this, 0, myIntent, 0); 
      AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 
      alarmManager.set(AlarmManager.RTC_WAKEUP, date.getTimeInMillis(), pendingIntent); 

這是我的接收器類,其中吐司將被顯示。

public class MyReceiver extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     Toast.makeText(context, "Birthday Set", Toast.LENGTH_LONG).show(); 


} 

回答

1

Calendar個月基於零:1月= 0,2月= 1。您在代碼中顯示的日期是2月29日。而且,Calendar.HOUR_OF_DAY用於24小時制。例如,指定10PM set(Calendar.HOUR_OF_DAY, 22)。您不應該一起使用HOUR_OF_DAYAM_PM。當使用AM_PM時,請將小時設置爲HOUR,而不是HOUR_OF_DAY