Уведомление устанавливается немедленно в Android

#android #notifications

#Android #уведомления

Вопрос:

Вызов метода:

 initNotificatie(endDate.getTime());
            Log.d("temp", "end: "   endDate.toGMTString()); // end: 13 Apr 2011 12:45:00 GMT
  

Метод:

     public void initNotificatie(long when)      {
        String ns = Context.NOTIFICATION_SERVICE;
        NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns);


        int icon = R.drawable.herinnering_button_dropdown;
        String contentTitleString = getString(R.string.notification_title);
        String contentTekstString = getString(R.string.notification_tekst);
        CharSequence tickerText = "NotificationTekst";

        Notification notification = new Notification(icon, tickerText, when);


        Context context = getApplicationContext();
        CharSequence contentTitle = contentTitleString;
        CharSequence contentText = contentTekstString;
        Intent notificationIntent = new Intent(this, MapDashboardActivity.class);
        PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
    notification.defaults |= Notification.DEFAULT_SOUND;
    notification.defaults |= Notification.DEFAULT_VIBRATE;
    notification.flags |= Notification.FLAG_AUTO_CANCEL;
        notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);
        final int HELLO_ID = 1;
        mNotificationManager.notify(HELLO_ID, notification);
}
  

Почему это уведомление устанавливается немедленно, в то время как уведомление назначено на завтра? Это потому, что конструктор уведомлений, который я использую, устарел? Я могу использовать это только потому, что я программирую на уровне 4.

Комментарии:

1. Ознакомьтесь с buzzbox sdk, чтобы легко запланировать событие и создать уведомление. Вы можете использовать строку cron для повторяющихся событий. hub.buzzbox.com

Ответ №1:

when Параметр относится к времени, которое должно отображаться в поле time. Это не то время, в которое должно отображаться уведомление. Для того, чтобы сделать это, используйте AlarmManager.