2011-01-11 12 views
1

私のアプリケーションの通知アイコンで奇妙な問題が発生しています。Android開発の通知アイコンの問題

私のアプリケーションは、Bluetooth経由でデータを送受信します。アプリケーションが起動されると、アプリケーションの通知アイコン(icon.png)が作成されます。それから、Bluetoothデバイスが接続されていないことを確認し、アイコンを(warn.png)に変更します。問題は、上部のステータスバーにwarn.pngが表示されているときに、進行中の通知ドロップダウンの下に「No Bluetooth Device connected」というテキストが付いたオリジナルアイコン(icon.png)が表示されます。 Bluetoothデバイスが接続すると、ステータスバーのアイコンは元のアイコン(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

まったく新しい通知を作成してみてください、それが適切にコンテンツビューにアイコンを更新した場合参照:以下

は、私が使用したコードです。

それは、あなたのためにそれを行うカスタムコンテンツビューを作成しない場合は別の方法として、:http://developer.android.com/guide/topics/ui/notifiers/notifications.html#CustomExpandedView

次に、あなたのRemoteViews上のオブジェクト、setImageViewResourceは、テキストを更新するために、あなたのアイコン、setTextViewTextを更新し、通知を設定します.contentViewをRemoteViewsオブジェクトにします。私は、ステータスバーのアイコンと拡張タスクバーのアイコン/テキストの両方を正しく更新することで成功しました。

あなたのコードには、notification.flags + = notification.FLAG_NO_CLEARがあることがわかりました。 + =

+0

の通知通知の追加=新しい通知(ICON、ONGOING_TEXT、System.currentTimeMillis());世話をした – jinanwow

+0

これはあなたのために今働いていると聞いてうれしいです。通知の新しいインスタンスを作成すると修正されたことをうれしくはありません。 notify()*を呼び出すとすべてを正しく更新する必要があるため、通知管理のバグのようです。 – brack