广播接收器在给定时间内不广播

时间:2016-02-01 05:38:44

标签: android

这是我的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);

这是我的接收器类,其中将显示toast。

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


}

1 个答案:

答案 0 :(得分: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