Android中有一个状态栏图标的多个通知

时间:2010-09-07 06:33:37

标签: android notifications

我正在使用自定义通知...如何设置不显示通知?并列出这些通知? 这是我的代码......

public void onReceive(Context context, Intent intent) {
        Toast.makeText(context, "coming", Toast.LENGTH_LONG).show();
        Bundle descBundle = intent.getExtras();
        CharSequence desc = descBundle.getString("description");
        int reminderId = descBundle.getInt("reminderId");
        NotificationManager mNotificationManager;
        mNotificationManager = (NotificationManager) context
                .getSystemService(Context.NOTIFICATION_SERVICE);
        PendingIntent contentIntent = PendingIntent.getActivity(context,
                reminderId, new Intent(), PendingIntent.FLAG_UPDATE_CURRENT);
        RemoteViews contentView = new RemoteViews(context.getPackageName(),
                R.layout.main);
        contentView.setImageViewResource(R.id.image, R.drawable.reminder_1);
        contentView.setTextViewText(R.id.text, desc);
        Notification notifyDetails = new Notification();
        notifyDetails.icon = R.drawable.reminder_1;
        notifyDetails.when = System.currentTimeMillis();
        notifyDetails.tickerText = desc;
        notifyDetails.iconLevel = 1;
        notifyDetails.number = reminderId;
        notifyDetails.contentView = contentView;
        notifyDetails.contentIntent = contentIntent;
        mNotificationManager.notify(0, notifyDetails);
    }

我使用此代码显示通知...但它只显示一个通知内容...但图标显示没有通知...

2 个答案:

答案 0 :(得分:3)

请记住,如果您希望为不同的对象显示多个通知,则必须为每个对象分配不同的通知ID。

例如,如果您有2个不同的对象,则必须调用

mNotificationManager.notify(0, notifyDetails);

mNotificationManager.notify(1, notifyDetails);

如果您不这样做,通知将始终为一,并且将始终更新。

答案 1 :(得分:2)

每个图标对应一个通知;您无法将多个通知与通知栏上的项目的一个实例相关联。

但是,您可以在图标上叠加一个数字(例如,显示图标代表的事件数),就像某些短信和电子邮件应用程序一样。

这是使用number的{​​{1}}实例变量完成的,就像您在上面的代码段中一样。

修改
更清楚:如果您需要多个通知,则需要创建多个Notification个对象并多次调用Notification

每个NotificationManager.notify()只能生成一个图标,通知区域内可以包含一个内容,并且可以有一个Notification与之关联。