如何在特定日期安排Android中的多个本地通知

时间:2015-12-01 07:30:18

标签: android android-notifications

在我的应用程序中,我需要在特定日期和不同时间间隔安排多个通知。(例如:2015年12月3日上午9点,下午1点半,下午5点,我需要显示不同内容的通知)。< / p>

我使用了警报管理器和广播接收器来显示这些我面临的一些问题

  1. 当我使用calander对象设置日期时,我只能显示一条通知。
  2. 当我点击通知时,它会打开应用程序并再次触发通知。
  3. 仅在打开App时显示通知。
  4. 这是我的MainActivity.java

     AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
    
        Intent notificationIntent = new Intent("android.media.action.DISPLAY_NOTIFICATION");
        notificationIntent.addCategory("android.intent.category.DEFAULT");
    
        PendingIntent broadcast = PendingIntent.getBroadcast(this, 100, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
    
        Calendar cal = Calendar.getInstance();
        cal.set(2015, 11, 1, 12, 47);
        cal.set(2015, 11, 1, 12, 53);
        alarmManager.setExact(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), broadcast);
    

    这是我的BroadCastReceiver

    Intent notificationIntent = new Intent(context, MainActivity.class);
    
        TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);
        stackBuilder.addParentStack(MainActivity.class);
        stackBuilder.addNextIntent(notificationIntent);
    
        PendingIntent pendingIntent1 = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
    
        NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
    
        Notification notification = builder.setContentTitle("TRR - 2016")
                .setContentText("Station - 1 closed grace period only 10min")
                .setTicker("New Message Alert!")
                .setSmallIcon(R.mipmap.ic_launcher)
                .setAutoCancel(true)
                .setContentIntent(pendingIntent1).build();
    
        NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
        notification.defaults |= Notification.DEFAULT_LIGHTS;
        notification.defaults |= Notification.DEFAULT_VIBRATE;
        notification.defaults |= Notification.DEFAULT_SOUND;
    
        notification.flags |= Notification.FLAG_ONLY_ALERT_ONCE;
        notificationManager.notify(++mCounter, notification);
    

    请帮我解决这个问题。

0 个答案:

没有答案