4

我使用下面的代码在通知栏中显示通知。

它工作得很好。

但我需要动态显示来自网络服务的通知图标。

我该怎么办?

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);

提前致谢。

4

2 回答 2

2

我有一个建议给你:你必须下载你想要显示的图像,然后你可以将它设置为位图:检查下面的代码。我创建了一个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());

有关更多详细信息,请查看此链接

删除通知

通知保持可见,直到发生以下情况之一:

用户可以单独或使用“全部清除”(如果可以清除通知)来关闭通知。

用户单击通知,您setAutoCancel()在创建通知时调用。您需要cancel()一个特定的通知 ID。此方法还会删除正在进行的通知。

您拨打cancelAll(),这会删除您之前发出的所有通知。

编辑:只需替换它。

mBuilder = new NotificationCompat.Builder(
                this).setSmallIcon(R.drawable.ic_launcher)
                .setContentTitle("My notification").setLargeIcon(BITMAP)
                .setAutoCancel(true)
                .setContentText("Hello World!");
于 2013-04-01T06:56:01.297 回答
0

只需在资源文件夹中添加一些图标,然后

int myIcon = R.drawable.image;

你的逻辑在这里....

并根据您的逻辑更改图标的值,例如myIcon = R.drawable.somenewimage;

然后最后设置你的通知

Notification note = new Notification(myIcon,"status message", System.currentTimeMillis());

于 2013-04-01T06:59:34.347 回答