Android O Notification Channel 的坑

Android O 不讓后臺起service, 要么改成JobSchedule,要么改成foreground service。

JobSchedule代碼改動太大,圖方便選了foreground service。

Foreground service就是service起來的同時要有一個notification讓用戶看到,就是原先偷偷摸摸的后臺動作現(xiàn)在都得光明正大放到臺前來。想了想覺得可以在notification channel上動下腦筋。

notification channel是android o新加的,凡是target o 的應用在o上彈notification都得創(chuàng)建一個notification channel,創(chuàng)建以后在系統(tǒng)設置里有一個統(tǒng)一的地方管理各個應用的通知,包括聲音,優(yōu)先級,震動等等,它有幾個坑。

第一個坑,notification channel 創(chuàng)建后不能修改,上一篇文章已經(jīng)講過了就不講了。

第二個坑,notification channel 的名字和描述是創(chuàng)建時自己設的,雖然你代碼里多語言都考慮進去了,但是等你切換語言就會發(fā)現(xiàn),它根本不管,創(chuàng)建時是啥語言還是啥語言,必須應用自己監(jiān)聽ACTION_LOCALE_CHANGED廣播,然后重新設置一下名字和描述,真是 坑爹的設計。

第三個坑,前面說了想要起個foreground service 但是又不想讓彈notification太顯眼,于是想到把notification channel的優(yōu)先級設成最低,這樣彈出的notification不僅沒有聲音,而且也不會在狀態(tài)欄顯示出來,只有下拉通知欄才能看到,而且還是排在最底下,這樣的通知基本能滿足偷偷摸摸起service的需求。然而圖樣圖森破,不管你之前設置的優(yōu)先級是min 還是 low,只要你用這個channel起了一次service,系統(tǒng)會自動把這個channel的優(yōu)先級調(diào)整為medium!文檔描述里說好的創(chuàng)建后不再修改去哪里了?。。。?!

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 原文出處: http://www.androidchina.net/6174.html Notification在...
    木木00閱讀 12,529評論 3 32
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,725評論 25 709
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,502評論 19 139
  • 今天又下雨了,雨滴稀稀落落的,并不緊湊,和前幾日的陽光明媚相比,天氣陰沉了許多,我的心境也受了影響,有些抑郁寡歡,...
    Jessy自由行走的貓閱讀 253評論 0 0
  • 新廣出辦發(fā)〔2016〕44號 各省、自治區(qū)、直轄市新聞出版廣電局,新疆生產(chǎn)建設兵團新聞出版廣電局,中央軍委政治工作...
    熙楓文化閱讀 307評論 0 0

友情鏈接更多精彩內(nèi)容