2017-02-11 87 views
2

我有一個應用程序,用戶可以收到多個通知,他們需要做的事情。用戶必須做一些這些通知的持久(我通過調用NotificationCompat.Builder.setOngoing實現)的一個選擇。至少在我的Android版本是Nougat的時候,當我的應用發佈了三個以上的通知時,他們會被捆綁到一個通知中,這使得所有通知都可以在一次刷卡中被用戶所取消。這使先前的持久通知不再持久。有沒有辦法以編程方式指示Android不捆綁我的通知?Android:有沒有辦法禁用通知捆綁?

這是我用它來構建通知,並顯示它的代碼:

NotificationCompat.Builder builder = new NotificationCompat.Builder(context) 
     .setSmallIcon(R.drawable.ic_notification) 
     .setContentTitle(eventName + " " + notificationText) 
     .setDefaults(Notification.DEFAULT_ALL) 
     .setOnlyAlertOnce(true) 
     .setContentIntent(eventListPendingIntent); 

if (goalInfo.goal.persistNotification) { 
    builder.setOngoing(true); 
} else { 
    builder.setAutoCancel(true); 
} 

NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); 
notificationManager.notify(eventType.value(), builder.build()); 

謝謝,尼爾

+0

你可以粘貼你的代碼片段,因爲捆綁不是默認完成的。你必須做某件事,你顯然不應該避免捆綁 – Dibzmania

+0

我將代碼添加到我的問題。如果有三個以上的通知,它只會捆綁它們... –

回答

4

按照谷歌文檔,從同一個應用程序的通知會被自動捆綁 -

注意:如果同一個應用程序發送四個或更多的通知,並且不 一起自動指定一個組,系統組他們。

所以在你的情況下,你可以做的是,而不是系統應用默認分組,你可以使用一個單獨的組密鑰爲持久通知和一個非持久的通知。

檢查谷歌文檔。上NotificationBuilderCompat方法Builder.setGroup()採用一個字符串參數,該參數是關鍵。 有一個相關的方法B uilder.setGroupSummary你應該打電話給你的Builder

希望這很清楚。

+0

謝謝!使用setGroup()的每個通知使用不同的鍵完全工作! –

+0

請添加一個鏈接到你引用的文件,爲我們節省了使用Google的努力。 – Sampo

+0

此文檔:https://developer.android.com/guide/topics/ui/notifiers/notifications.html#bundle – kolombo

相關問題