我用下面的代码在通知栏中显示通知。
它工作得很好。
但我需要动态显示通知图标,将来自Web服务。
我该怎么办?
NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
Notification note = new Notification(R.drawable.image,"status message", System.currentTimeMillis());
Intent in = new Intent(Notify.this,CommentU.class);
PendingIntent pi = PendingIntent.getActivity(Notify.this, 0, in, 0);
note.setLatestEventInfo(Notify.this,"NotificationTitle", "You have a new Commentio", pi);
note.number = ++count;
note.vibrate = new long[] { 500l, 200l, 200l, 500l };
note.flags |= Notification.FLAG_AUTO_CANCEL;
nm.notify(NOTIFY_ME_ID, note);
提前致谢。
我对你有一个建议:你必须下载要显示的图像,然后你可以设置为位图:检查下面的代码。 我创建了一个BITMAP
。 它的外观链接:
为此,您需要添加android-support-v4.jar
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
this).setSmallIcon(R.drawable.ic_launcher)
.setContentTitle("My notification").setLargeIcon(BITMAP)
.setContentText("Hello World!");
Intent resultIntent = new Intent(this, test.class);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
stackBuilder.addParentStack(test.class);
stackBuilder.addNextIntent(resultIntent);
PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0,
PendingIntent.FLAG_UPDATE_CURRENT);
mBuilder.setContentIntent(resultPendingIntent);
NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(NOTIFY_ME_ID, mBuilder.build());
更多的细节chekc此链接 。
删除通知
直到下列任一情况通知仍然可见:
用户退出通知单独或通过使用“全部清除”(如果通知可以被清除)。
用户点击该通知,并且你叫setAutoCancel()
时创建的通知。 你叫cancel()
为特定的通知ID。 此方法还会删除正在进行的通知。
你叫cancelAll()
这将删除所有你之前发出的通知。
编辑:只需更换这一点。
mBuilder = new NotificationCompat.Builder(
this).setSmallIcon(R.drawable.ic_launcher)
.setContentTitle("My notification").setLargeIcon(BITMAP)
.setAutoCancel(true)
.setContentText("Hello World!");
只需添加一些图标在您的资源文件夹,然后
int myIcon = R.drawable.image;
你的逻辑到这里....
并根据自己的逻辑等改变图标的值myIcon = R.drawable.somenewimage;
然后最后设置您的通知
Notification note = new Notification(myIcon,"status message", System.currentTimeMillis());