2011-12-16 19 views
2

表示するカスタムレイアウトの通知を受け取ることができません。次の(古い)コードを使用する場合:Androidのカスタム通知が表示されない

notification = new Notification(); 
notification.icon = R.drawable.icon; 
notification.tickerText = currentTickerText; 
notification.when = System.currentTimeMillis(); 
notification.setLatestEventInfo(context, (CharSequence)currentTitle, (CharSequence)"", pendingIntent); 

すべてが期待通りに機能し、通知が表示されます。ただし、次の(新しい)コードを使用した場合:

contentView = new RemoteViews(context.getPackageName(), R.layout.service_notification); 
contentView.setImageViewResource(R.id.image, R.drawable.icon); 
contentView.setTextViewText(R.id.title, (CharSequence)currentTitle); 
contentView.setTextViewText(R.id.text, (CharSequence)""); 
contentView.setViewVisibility(R.id.pgStatus, View.GONE); 

notification = new Notification(); 
notification.tickerText = currentTickerText; 
notification.when = System.currentTimeMillis(); 

notification.contentView = contentView; 
notification.contentIntent = pendingIntent; 

通知は表示されません。私は間違いがないので、どこで問題を探すべきかわからない。ここでservice_notificationレイアウトコードは次のとおりです。それが違いを行う場合

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/layout" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:padding="10dp" > 
    <ImageView android:id="@+id/image" 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:layout_alignParentLeft="true" 
     android:layout_marginRight="10dp" /> 
    <TextView android:id="@+id/title" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_toRightOf="@id/image" 
     android:text="This is the title." 
     style="@style/NotificationTitle" /> 
    <TextView android:id="@+id/text" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_toRightOf="@id/image" 
     android:layout_below="@id/title" 
     android:text="This is the status" 
     style="@style/NotificationText" /> 
    <ProgressBar 
     android:id="@+id/pgStatus" 
     style="?android:attr/progressBarStyleHorizontal" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/text" 
     android:layout_toRightOf="@+id/image" /> 
</RelativeLayout> 

はまた、私は、Android 2.2エミュレータでこれを実行していますよ。

誰もが間違っている可能性が何の任意のアイデアを持っているか、どのように私はこの問題を追跡するに取り掛かるだろうか?私は仕事をするためのエラーメッセージを持っていないので、一種の損失になっています。ありがとう!

答えて

11

ステータスバーの通知は、以下のすべてが必要です。

  • ステータスバー
  • タイトルとメッセージのアイコン、カスタム通知レイアウト
  • A PendingIntentを定義しない限り、通知が選択されると解雇されます。

Status Bar Notifications - Creating Notifications

あなたは通知が有効でないことを意味するアイコンを指定しません。

(しかし、はい、それはこの場合には適切なエラーメッセージ/例外が存在しないことをフレームワーク側に悪いです)


編集:だけを介してこれをテストし、私は「確認することができますAndroid 2.2のコメントからの「目に見えない」通知。それは2.3.3で動作しますが、その間に修正されたover a bugがつまずいたようです。

問題のある行が私のために次のようである:私はそれをコメントアウトした場合

contentView.setViewVisibility(R.id.pgStatus, View.GONE); 

、すべてが動作します。また、基本的に同じ効果を持つXMLレイアウトのProgressBarにandroid:visibility="gone"を追加すると動作します。しかし、私がバーにsetViewVisibility()と呼ぶとすぐに、すべてが分断されます。

だから私は、バグトラッカーのコメントからの回避策をお勧めのLinearLayoutの中にプログレスバーをラップし、代わりにその可視性を変更すると思います。

+0

hm。それは少なくとも問題の一部です。今ではティッカー通知が表示されますが、現在の通知を表示するためにドラッグすると、アイコンは左上隅にはっきりと表示されますが、表示されません。思考? –

+0

@SpencerRuport私の答えを編集しました。:) –

+0

私はアイコン(と他のすべての要件)と...何も持っていません。コードは実行され、エラーは発生せず、通知も表示されません。 – SteveCav

関連する問題