2016-11-15 6 views
0

Я пытаюсь запланировать некоторые локальные уведомления в определенные дни, и я использую AlarmManager, чтобы запланировать их. К сожалению, в будущем это не сработает. Любые идеи почему?AlarmManager не передает уведомление

Это, как я вычислить время, когда сигнал тревоги должен быть вызван

private long computeDelay(int day){ 

    long currentSystemTime = System.currentTimeMillis(); 

    Calendar scheduleTime = Calendar.getInstance(); 

    // used to compute number of hours and mins 
    int currentDay = scheduleTime.get(Calendar.DAY_OF_MONTH); 
    scheduleTime.set(Calendar.DAY_OF_MONTH, currentDay + day); 
    scheduleTime.set(Calendar.HOUR, 7); 
    scheduleTime.set(Calendar.MINUTE, 0); 
    scheduleTime.set(Calendar.SECOND, 0); 
    scheduleTime.set(Calendar.AM_PM, Calendar.PM); 

    return scheduleTime.getTimeInMillis(); 
} 

И это, как я график тревоги.

private void scheduleNotification(Notification notification, long time) { 
    Intent notificationIntent = new Intent("android.media.action.DISPLAY_NOTIFICATION"); 

    notificationIntent.putExtra(NotificationPublisher.NOTIFICATION_ID, 1); 
    notificationIntent.putExtra(NotificationPublisher.NOTIFICATION, notification); 
    notificationIntent.addCategory("android.intent.category.DEFAULT"); 

    PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT); 

    AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); 
    alarmManager.set(AlarmManager.RTC_WAKEUP, time, pendingIntent); 
} 

Контекст - это приложение (т. Е. GetApplication()).

Большое спасибо!

+2

Удалите свои изображения и вставьте код. Изображения не доступны для поиска. – 323go

+1

отсортировано! Извини за это! –

ответ

0

Проблема была в том, как я получал PendingIntent.

PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT); 

я вызов метод график тревоги несколько раз и коды запроса всегда была 0, так что было только планирование последней сигнала тревоги. Я даю каждому списку аварийных сигналов уникальный код запроса и, похоже, работает нормально.