2014-02-11 6 views
1

Некоторые вопросы о push-уведомлениях. Как мне оповестить все уведомления о моем приложении, когда я нажимаю один из них? Также ... как я могу рассеять уведомления, если я начну приложение (а не из-за анонимности)?Отклонить Android push Уведомления

Вот как я отправляю уведомление из моего класса GcmIntentService (если это полезно).

private void sendNotification(Bundle extras) { 
    mNotificationManager = (NotificationManager) 
      this.getSystemService(Context.NOTIFICATION_SERVICE); 

    NOTIFICATION_ID = Integer.parseInt(extras.getString("id")); 

    Intent in = new Intent(this, PushActivity.class); 
    in.putExtras(extras); 
    in.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    String msg = extras.getString("msj"); 

    PendingIntent contentIntent = PendingIntent.getActivity(this, 0, 
      in, PendingIntent.FLAG_UPDATE_CURRENT); 

    NotificationCompat.Builder mBuilder = 
      new NotificationCompat.Builder(this) 
    .setSmallIcon(R.drawable.ic_launcher) 
    .setContentTitle("MY TITLE") 
    .setAutoCancel(true) 
    .setStyle(new NotificationCompat.BigTextStyle() 
    .bigText(msg)) 
    .setContentText(msg); 

    mBuilder.setContentIntent(contentIntent); 
    mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build()); 
} 
+0

попробовать 'mBuilder.cancelAll()' –

+0

mBuiler это не позволяет мне делать .cancelAll(); Есть идеи? –

+0

Почему? перейдите к официальному [docs] (http://developer.android.com/guide/topics/ui/notifiers/notifications.html) –

ответ

1

Я не уверен, если уведомления вы выводящие предназначены для того же события, если так что вы можете делать то, что называется «укладки уведомлений», как Gmail делает, когда вы получаете второе или третье электронное письмо. Это все в одном уведомлении и поэтому уйдет как один. Это только совместимо выше 4.1.

Это код, который Google предоставляет вместе с укладкой. Это любая помощь? не

mNotificationManager = 
    (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
// Sets an ID for the notification, so it can be updated 
int notifyID = 1; 
mNotifyBuilder = new NotificationCompat.Builder(this) 
.setContentTitle("New Message") 
.setContentText("You've received new messages.") 
.setSmallIcon(R.drawable.ic_notify_status) 
numMessages = 0; 
// Start of a loop that processes data and then notifies the user 
... 
mNotifyBuilder.setContentText(currentText) 
    .setNumber(++numMessages); 
// Because the ID remains unchanged, the existing notification is 
// updated. 
mNotificationManager.notify(
     notifyID, 
     mNotifyBuilder.build()); 
+0

Мне не нужно отображать все описи как одну. Было бы легко уволить это одно сообщение с .setAutoCancel (true). Любая идея, как я могу рассеять их всех? И как увольнять их все, когда я запускаю приложение? –

+0

ОК, поэтому я взглянул на это, это неплохая идея. Проблема в том, что она совместима только с 4.1 = ( –

+0

Хорошо, что CancelAll() отменяет все предыдущие уведомления. Это можно вызвать при нажатии на уведомление, а затем вы можете добавить его и при запуске своей программы. Вот ссылка для получения дополнительной информации об управлении вашими уведомлениями. [Link] (http://developer.android.com/reference/android/app/NotificationManager.html#cancelAll()) –

0

попробовать android.app.NotificationManager.cancelAll()

Смежные вопросы