我目前正致力於將應用程序轉換爲Android O,並且目前正在處理通知渠道。是否可以通過IMPORTANCE_MIN在通知渠道中放置前臺服務通知?
我已經制作了不同的頻道,使用不同的importance levels,由於應用程序有一個前臺服務必須在任何時候都運行,直到我們轉換到一個新的體系結構(更多的面向推送),我考慮將該通知放入一個頻道中它的重要性設置爲IMPORTANCE_MIN
,以便它在那裏,但它不會影響用戶,也不會在狀態欄中放置圖標。
然而,當我這樣做,我把我的應用程序在後臺(與家庭或後退按鈕),我得到一個Android系統的通知,告訴我,我的應用程序在後臺運行,就像這樣:
如果我改變我的頻道,並使其使用IMPORTANCE_LOW
,問題消失,但通知更加突出。
所以,我的問題是 - 是否有可能做我所嘗試的?我知道系統不會允許開發人員這樣做,因爲如果您有前臺服務,它應該對用戶可見,但這只是一個猜測,並且我沒有發現關於此的文檔,這就是爲什麼我是張貼這個問題。
我的第二個問題是 - 在O之前,如果您將通知的優先級設置爲PRIORITY_MIN
,您是否可以將該通知綁定到某個服務以使其成爲前臺服務,還是因爲它始終處於禁止狀態?
編輯:證實,Android系統顯示與重要性IMPORTANCE_MIN
(感謝,M66B)通道的通知,所以現在剩下的問題是爲什麼?有沒有人知道背後的原因,或者可以在任何地方找到任何文檔?這可能是一個應該向跟蹤器報告的錯誤?
對於前臺服務通知,使用通知優先級PRIORITY_MIN可以在Android O之前正常工作,也可以在我的經驗中使用Android O。 – M66B
你的意思是,在Android O上,如果你還沒有瞄準API 26級?因爲優先級從API級別26開始已被棄用,並且您需要使用重要性製作通知渠道,以便訂購通知。 – Anax
通知的優先級在API級別26上已棄用,但新增功能是通知通道的「重要性」,因此您仍然可以實現相同的目的。看到這裏:https://developer.android.com/reference/android/app/NotificationChannel.html#setImportance (int) – M66B