Intereting Posts
Как обращаться с: java.util.concurrent.TimeoutException: android.os.BinderProxy.finalize () вышло после 10 секундных ошибок? Написание пользовательского lint.xml Android Tablet – получите уникальный идентификатор устройства Какой поток запускает ContentProvider? Создание и запуск приложения через Gradle и Android Studio происходит медленнее, чем через Eclipse Как передать объект другому мероприятию? Как записать файл в Android в исходную папку? Android Удалить исходный текст Создание приложения для Android с targetSdkVersion 25 и minSdkVersion 19 ImageView внутри CollapsingToolbarLayout не отображается на некоторых устройствах StartActivity, создающий новый экземпляр Activity каждый раз Как получить идентификатор ресурса с известным именем ресурса? Как добавить события календаря в Android? Можем ли мы установить ОС Android на любой Windows Phone и наоборот, а также с iPhone и наоборот? Почему я получаю пустое пространство сверху и снизу своего ImageView в моем RelativeLayout?

Несколько уведомлений и только показать первый Android

Я создаю приложение, которое должно показывать более одного уведомления. Я искал информацию, и я использую этот код в классе:

Notification noti = new NotificationCompat.Builder(this) 

Я могу показать несколько предупреждений на панели, но проблема в том, что когда я нажимаю на нее, она показывает только первую. Я думаю, что это потому, что идентификатор, который ожидает ожидающий намерение, всегда один и тот же, но я отправляю другой.

Уведомление: показывается новое уведомление, когда я нажимаю кнопку.

 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++; } } 

Как вы можете видеть, я увеличиваю идентификатор уведомления каждый раз, когда нажимаю кнопку для отправки другого идентификатора.

Уведомление: показывает идентификатор уведомления.

 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")); } } 

Здесь отображается только идентификатор уведомления, но это всегда 1.

Любая идея о том, что произошло? Я тестирую его на устройстве 2.3.

Спасибо всем.

Solutions Collecting From Web of "Несколько уведомлений и только показать первый Android"

 1) PendingIntent pendingIntent = PendingIntent.getActivity(this, 1, i, 0); ..............Your code ........................ nm.notify(1, noti); 2)PendingIntent pendingIntent2 = PendingIntent.getActivity(this, 2, i, 0); ..............Your code ........................ nm2.notify(2, noti); 3)PendingIntent pendingIntent3 = PendingIntent.getActivity(this, 3, i, 0); ..............Your code ........................ nm3.notify(3, noti); 4)................same as above 5)................same as above 

Просто для того, чтобы решить проблему:

 int num = (int) System.currentTimeMillis(); PendingIntent resultPendingIntent=PendingIntent.getActivity(this,num,resultIntent,Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); mNotificationManager.notify(num, mNotifyBuilder.build());*