Android:限制通知栏中的通知数量
Posted
技术标签:
【中文标题】Android:限制通知栏中的通知数量【英文标题】:Android: limit the number of notifications in notification bar 【发布时间】:2015-02-02 10:46:01 【问题描述】:我创建了简单的 android 应用程序,它与推送通知集成。推送通知工作正常,但现在我想限制列表中显示的通知数量(最多 5 个)。当用户获得第 6 个时,想要删除最旧的。我浏览了网络,但我找不到实现这个东西的方法。
-
是否可以实现这个场景?
这是我的 GCM Intent 服务,
@Override
protected void onHandleIntent(Intent intent)
Bundle extras = intent.getExtras();
GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(this);
// The getMessageType() intent parameter must be the intent you received
// in your BroadcastReceiver.
String messageType = gcm.getMessageType(intent);
// Log.e(getPackageName(), messageType);
if (!extras.isEmpty())
if (GoogleCloudMessaging.MESSAGE_TYPE_SEND_ERROR.equals(messageType))
// sendNotification("Send error: " + extras.toString());
else if (GoogleCloudMessaging.MESSAGE_TYPE_DELETED.equals(messageType))
// sendNotification("Deleted messages on server: " +
// extras.toString());
// If it's a regular GCM message, do some work.
else if (GoogleCloudMessaging.MESSAGE_TYPE_MESSAGE.equals(messageType))
// Post notification of received message.
// newms = extras.getString("message").toString();
sendNotification(extras.getString("title"), extras.getString("id"));
;
GcmBroadcastReceiver.completeWakefulIntent(intent);
private void sendNotification(String title, String id)
mNotificationManager = (NotificationManager) this.getSystemService(Context.NOTIFICATION_SERVICE);
Intent intent = new Intent(this, MainActivity.class);
intent.putExtra("title", title);
intent.putExtra("id", id);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
Uri uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this).setSmallIcon(R.drawable.pqr)
.setContentTitle(getString(R.string.app_name)).setSound(uri).setStyle(new NotificationCompat.BigTextStyle().bigText(title))
.setContentText(title);
mBuilder.setDefaults(Notification.DEFAULT_ALL);
mBuilder.setAutoCancel(true);
mBuilder.setContentIntent(contentIntent);
mNotificationManager.notify(Integer.parseInt(id), mBuilder.build());
【问题讨论】:
【参考方案1】:是的,我们可以实现这一点。我保存了本地推送通知 ID,并在第 6 个到来时清除了第一个 id。(为此我们可以使用队列。)
【讨论】:
以上是关于Android:限制通知栏中的通知数量的主要内容,如果未能解决你的问题,请参考以下文章