показывать уведомление на определенную дату и время


Мне нужно показать уведомление о конкретной дате и времени (27-06-2015 13:00). Сначала я показываю сообщение тоста. Для этого я создал широковещательный приемник. Я называю отложенное намерение так -

Код Деятельности -

Calendar cal=Calendar.getInstance();
cal.set(Calendar.MONTH,(5));
cal.set(Calendar.YEAR,2015);
cal.set(Calendar.DAY_OF_MONTH, 27);
cal.set(Calendar.HOUR_OF_DAY,13);
cal.set(Calendar.MINUTE,00);

Intent myIntent1 = new Intent(this, AlarmBroadCustReciver.class);
PendingIntent pendingIntent1 = PendingIntent.getBroadcast(this, 1253, myIntent1,
        PendingIntent.FLAG_UPDATE_CURRENT);

AlarmManager alarmManager1 = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager1.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent1);

Код Приемника Широковещательной Передачи -

public class AlarmBroadCustReciver extends BroadcastReceiver {
    public AlarmBroadCustReciver() {
    }

    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context, "Alarm worked.", Toast.LENGTH_LONG).show();
    }
}

Я пытаюсь проверить это, изменив время моего телефона.Я меняю время звонка на 12: 59. Но когда я вызываю приемник широковещательной передачи, он мгновенно дает тост сообщение он должен показать, когда время 13: 00 в соответствии с моей логикой. Я делаю что-нибудь не так?

1 2

1 ответ:

Все выглядит ясно в вашем коде, возможно, это проблема Calendar obj, которую вы инициализировали.

Один раз попробуйте сделать следующее,

Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(System.currentTimeMillis());
cal.clear();
cal.set(2015,5,27,13,00); 

И установить

alarmManager1.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent1);

Надеюсь, что это поможет вам.