我正在創建一個應用程序,必須顯示多個通知。我一直在尋找的信息,我在課堂上使用此代碼:多個通知,並只顯示第一個Android
Notification noti = new NotificationCompat.Builder(this)
我可以顯示欄上有多個通知,但問題是,當我點擊它只顯示第一個。我認爲它是因爲待決意圖獲得的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++;
}
}
正如你可以看到我增加notificationID每次我點擊按鈕發送一個不同的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
基本上給每個pendingintent一個唯一的編號在這裏。在notify()中使用該數字之後,它會爲接下來的通知遞增。 –