5

我有一個可接收不同通知類型的應用程序(例如NewsPodcast)。目前它有兩個簡單的開關,用戶可以啓用和禁用這些不同的通知類型。它的工作原理是隻訂閱和取消訂閱該類型的相應Firebase主題。明顯的優勢是設備只接收用戶需要的通知,不必在本地進行過濾=>電池和數據有效。通過Android通知渠道使用Firebase主題消息

問題是,我想將它與新的android O通知通道相結合。我是否有權假定唯一的方法是訂閱Firebase中的所有主題,並讓用戶在android設置中手動禁用不需要的主題?

是否有更好的方式來節省更多的電池壽命(通過不接收所有通知)?

回答

4

Notification Channel(僅適用於Android O的一項功能 - 大概是起作用的)就像您(通常)用於排序/管理您在本地構建的通知的參數。 -

Android O引入通知通道來提供統一的系統來幫助用戶管理通知。

它不一定禁用接收你不想收到通知,但(據我所知)通知沒有通知通道將不會顯示在Android的O /顯示(沒有收到! =未顯示)。即您的設備可能實際上仍在接收通知,但只是不顯示。

對於通過主題發送的通知,只要相應的註冊令牌已訂閱,預期的行爲是客戶端handle it accordingly

說了這麼多,你已經實現了什麼(如果我正確理解你的文章 - 基於某種類型的開關訂閱和取消訂閱主題)已經是最簡單的了。您可以撥打deleteInstanceId()。有關其他信息,請參閱我的回答herehere

+3

因此,看起來最簡單的做法是構建單個通知渠道,並讓用戶在我的應用中選擇單個通知類別。其他一切都會導致潛在的令人困惑的用戶界面。感謝您的回答! – Thomas