Android开发通知图标问题

时间:2011-01-11 19:42:06

标签: android icons notifications

我的应用程序中出现了一个通知图标的奇怪问题。

我的应用程序通过蓝牙发送和接收数据。启动应用程序时,它会创建应用程序的通知图标(icon.png)。然后它将看到没有连接蓝牙设备并将图标更改为(warn.png)。问题是,当顶部的状态栏显示warn.png时,在正在进行的通知下拉下,它有原始图标(icon.png),文本为“No Bluetooth Device connected”。当蓝牙设备连接时,状态栏图标会变回原始图标(icon.png),但在正在进行的通知下,它会显示警告图标,并显示消息“建立连接”。

以下是我使用的代码:

private void notification_updates(String DISPLAY_TEXT, String ONGOING_TEXT, int ICON) {
Intent intent = new Intent(this,GUI.class);
intent.addFlags(intent.FLAG_ACTIVITY_NEW_TASK | intent.FLAG_ACTIVITY_SINGLE_TOP);

try
{
    notification.setLatestEventInfo(Monitor.this, "App_Name",ONGOING_TEXT, 
            PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT));
    notification.icon = ICON;
    notification.tickerText = DISPLAY_TEXT;
    notification.flags = notification.FLAG_ONGOING_EVENT; //on going events
    notification.flags += notification.FLAG_NO_CLEAR; //no clear.

    mManager.notify(APP_ID, notification);

} catch(Exception e)
{
    Log.e(TAG, "Failed to Notifiy the notification manager (create):\n" + e.toString());
}

}

1 个答案:

答案 0 :(得分:1)

尝试创建一个全新的通知,看看它是否正确更新了内容视图中的图标。

或者,如果不能为您执行此操作,请创建自定义内容视图:http://developer.android.com/guide/topics/ui/notifiers/notifications.html#CustomExpandedView

然后,在RemoteViews对象上,使用setImageViewResource更新图标,使用setTextViewText更新文本,并将notification.contentView设置为RemoteViews对象。我已经成功地正确更新了状态栏中的图标,以及展开的任务栏中的图标/文字。

切线,我注意到你的代码有notification.flags + = notification.FLAG_NO_CLEAR。我相信,因为这是一个位掩码你想要| =而不是+ =