有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java一个应用程序中的两个并行通知(安卓)

我想编写一个应用程序,发送两种类型的通知。用户应该同时看到它们

到目前为止,即使我更改了PendingEvents的标志,通知也会相互更新

这是我的代码:

Calendar calendar = Calendar.getInstance();

Intent intent = new Intent(this, Push.class);
Intent intent2 = new Intent(this, Push2.class);

PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
PendingIntent pendingIntent2 = PendingIntent.getBroadcast(this, 1, intent2, PendingIntent.FLAG_UPDATE_CURRENT);

AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
AlarmManager alarmManager2 = (AlarmManager) getSystemService(ALARM_SERVICE);

alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis()+10, pendingIntent);
alarmManager2.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis()+10, pendingIntent2);

共 (1) 个答案

  1. # 1 楼答案

    创建两个不同的通知生成器对象

    范例

    第一个通知对象

    Notification.Builder builder = new Notification.Builder(context);
    
    builder.setContentIntent(contentIntent)
                .setSmallIcon(R.drawable.some_img)
                .setLargeIcon(BitmapFactory.decodeResource(res, R.drawable.some_big_img))            
                .setAutoCancel(true)
                .setContentTitle(res.getString(R.string.your_notif_title))
                .setContentText(res.getString(R.string.your_notif_text));
    Notification n1 = builder.build();
    

    第二个通知对象

    Notification.Builder builder2 = new Notification.Builder(context);
    
    builder.setContentIntent(contentIntent)
                .setSmallIcon(R.drawable.some_img)
                .setLargeIcon(BitmapFactory.decodeResource(res, R.drawable.some_big_img))            
                .setAutoCancel(true)
                .setContentTitle(res.getString(R.string.your_notif_title))
                .setContentText(res.getString(R.string.your_notif_text));
    Notification n2 = builder2.build();
    
    NotificationManager nm = (NotificationManager) context
            .getSystemService(Context.NOTIFICATION_SERVICE);
    

    使用通知管理器显示通知

    nm.notify(YOUR_NOTIF_ID, n1);
    nm.notify(YOUR_NOTIF_ID_2, n2);
    

    请注意,参考代码取自this answer