0

在我的應用程序中,我正在應用推送通知並使用notificationCompat類進行通知。通知欄+推送通知說明

因此,我爲每個通知分配一個唯一的ID,因此每個通知在通知欄中單獨顯示。

當用戶點擊一個通知時,使用一個待定的意圖,我正在引導用戶走向某個活動,在那裏他可以看到所有以前的通知。 (我從MySQL數據庫讀取它們)。

問題1:我想,如果用戶點擊只在其中一人在狀態欄中的所有通知被清除。可以是任何隨機的(因爲它來自我的應用程序)。 setAutoCancel()方法只能刪除被按下的那個,而我似乎不知道我會在哪裏實現cancelAll()方法。

答案:

@Override 
protected void onResume() 
{ 
    super.onResume(); 
    NotificationManager notificationManager = (NotificationManager) this.getSystemService(Context.NOTIFICATION_SERVICE); 
    notificationManager.cancelAll(); 
} 

問題2:由於每個通知具有唯一的ID,從個體應用程序發送幾個通知,以及在從所述用戶不檢查的情況下,可能會導致通知欄中出現多個圖標。 Android開始收集它們,並在他們開始佔用太多空間時顯示徽章號碼,並且系統意識到他們沒有足夠的空間。 有沒有什麼方法可以將它們從一開始組合起來?也就是說,只要我發送通知,並且沒有被選中,第二個應該被添加,並且無論系統使用什麼,單個圖標都應該出現在編號爲2或+的條上。

+1

問題1:onResume顯示的活動或應用程序中的每個活動。問題2:我不知道任何現有的簡單方法來做到這一點,我通過手動跟蹤我自己的數據庫來做到這一點。 –

+0

@ChorWaiChun謝謝。我用答案更新了我的問題,請看看。關於第二個問題,你是檢查每個用戶,如果他們檢查通知或否和計數?我沒有完全理解你。 – tony9099

+0

我的應用程序基於聊天環境,每條消息我將在數據庫中更新其讀取和未讀狀態。所以我會在我的表格中填入未讀數量的徽章數量。 –

回答

1

我想將問題1和問題2合併爲一個答案:不顯示多個通知!顯示一個通知並在有多個未經檢查的通知時進行更新。作爲一名用戶,如果我的通知欄被來自單個應用程序的通知垃圾郵件,我會非常惱火。想想GMail應用程序,它是通知,如果你會收到每個傳入的電子郵件。

在4.1版本的設備上,您必須使用Normal View。如果您只有一條未經檢查的消息,您可以立即在通知中顯示消息的內容,並且如果您有多個消息,則可以執行類似GMail通知的操作,並顯示「未經檢查的消息」等內容。

在4.1+設備上,您可以使用Big View一次顯示所有設備。