2014-08-29 3 views
0

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

NotificationCompat.Builder mBuilder = 
      new NotificationCompat.Builder(this) 
      .setSmallIcon(R.drawable.ic_launcher) 
      .setContentTitle("My notification") 
      .setContentText("Trainieren sie jetzt!") 
      .setAutoCancel(true); 
    Intent resultIntent = new Intent(this, MainActivity2.class); 

    AlarmManager alarmManager =(AlarmManager)getSystemService(ALARM_SERVICE); 



    PendingIntent resultPendingIntent = 
     PendingIntent.getActivity(
     this, 
     0, 
     resultIntent, 
     PendingIntent.FLAG_UPDATE_CURRENT); 


    Calendar cal = Calendar.getInstance(); 
    cal.set(Calendar.HOUR_OF_DAY, 12); 
    cal.set(Calendar.MINUTE, 54); 
    alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 24*60*60*1000, resultPendingIntent); 



    mBuilder.setContentIntent(resultPendingIntent); 
    int mNotificationId = 001; 
    NotificationManager mNotifyMgr = 
      (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 
    mNotifyMgr.notify(mNotificationId, mBuilder.build()); 

Спасибо, что помогли!

+0

вы должны установить уведомление, где вы устанавливаете время ... – Umair

+1

do Вы действительно хотите повторять сигналы тревоги? – Opiatefuchs

+0

Установка повторяющегося сигнала тревоги с помощью приемника широковещательной передачи - это не шея бутылки, насколько я могу думать об этом. Только таймер может стать очень громоздким. Если блокировки слежения будут правильно реализованы внутри службы, она становится все более эффективной. – Skynet

ответ

1

Вам нужно добавить:

@Override 
public void onReceive(Context context, Intent intent) { 
    // Toast.makeText(MainActivity.con, "Hello from alarm", 1).show(); 


    // System.out.println("Hello from Alarm"); 
    context.startService(new Intent(context, NotificationService.class)); 

} 

В приведенном выше примере я направлять процесс в мой класс обслуживания, чтобы обработать мое уведомление, управление услуга блокировки и реализации фон службы. Если вы не внедряете Сервис, вы можете просто отображать свои уведомления в методе onRecieve.

Пожалуйста, посмотрите here, он имеет полную реализацию класса сигнализации.

Смежные вопросы