通知を1回以上表示する必要があるアプリケーションを作成しています。私は、情報を探していたと私はクラスでこのコードを使用:複数の通知が表示され、最初の通知のみが表示されます。
Notification noti = new NotificationCompat.Builder(this)
私はバーの上に複数の通知を表示することができますが、問題は、私はそれをクリックしたときにのみ、最初のものを示すことです。保留中の意図が取得するIDは常に同じですが、別のIDを送信するためです。
通知活動:ボタンをクリックすると、新しい通知が表示されます。
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.NotificationCompat;
import android.util.Log;
import android.view.View;
public class NotificationActivity extends Activity {
int notificationID = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_notification_example);
}
public void onClick(View v){
displayNotification();
}
protected void displayNotification(){
Intent i = new Intent(this, NotificationView.class);
i.putExtra("notificationID", notificationID);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, i, 0);
NotificationManager nm = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
CharSequence ticker ="Display";
CharSequence contentTitle = "Title";
CharSequence contentText = "Description";
Notification noti = new NotificationCompat.Builder(this)
.setContentIntent(pendingIntent)
.setTicker(ticker)
.setContentTitle(contentTitle)
.setContentText(contentText)
.setSmallIcon(R.drawable.ic_launcher)
.addAction(R.drawable.ic_launcher, ticker, pendingIntent)
.setVibrate(new long[] {100, 250, 100, 500})
.build();
Log.d("Send Notification", "id: "+notificationID);
nm.notify(notificationID, noti);
notificationID++;
}
}
ご覧のとおり、別のIDを送信するためにボタンをクリックするたびに通知IDを増やすことができます。
通知表示:通知のIDを表示します。
import android.app.Activity;
import android.app.NotificationManager;
import android.os.Bundle;
import android.widget.TextView;
public class NotificationView extends Activity {
TextView txt;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.notification);
txt= (TextView) findViewById(R.id.txt1);
NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
txt.setText("Notification ID: "+getIntent().getExtras().getInt("notificationID"));
// Cancel notification
nm.cancel(getIntent().getExtras().getInt("notificationID"));
}
}
ここだけは、通知のIDを示していますが、それは常に1
起こったかについての任意のアイデアですか? 2.3デバイスでテストしています。
ありがとうございます。
あなたがそれをしてください説明できますか?私はあなたが私に言っていることを理解していない。 --------------------- これは正常に動作します:)ありがとうございます。 – Fernando
このコードは異なる別の通知を作成しますが、上書きはできません。 – AnilPatel
は、基本的に各保留中に一意の番号を付けます。その番号をnotify()で使用した後、次の通知のためにそれをインクリメントします。 –