根據《第一行** 第二版》第八章中通知的寫法,在我自己手機上除錯的時候沒有任何反應。
查閱資料後發現,因為我的手機系統是miui10.3版本,為android 9系統,而在android 8系統上對通知進行了修改,引入了訊息通道(notification channel) 的使用。目的是為了方便不同資訊的管理與分類,提高使用者體驗。
乙個打的不同就是notificationcompat.builder中,只有乙個context引數的構造方法已經被標為過時,而另乙個構造 方法需要傳入乙個channelid的字串引數:
如果想要通知正常的顯示出來,那就需要乙個能收納該資訊的資訊通道,需要兩個步驟:
建立訊息通道:
//id 就是上面建立訊息需要的訊息通道的id
//name 是該訊息通道的名稱
//最後乙個引數是該訊息通道的重要性
notificationchannel channel=
newnotificationchannel
("id"
,"name"
,notificationmanager.importance_high)
;channel.
enablelights
(true);
//允許呼吸燈閃爍
channel.
setdescription
("describe");
//設定該通道的描述
channel.
setlightcolor
(color.red)
;//當然還可以再使用其他方法
當然notification裡的setpriority方法也被標記為了過時(上面的訊息通道重要性引數取代了該方法):
一樣的還有設定震動也是需要在訊息通道裡設定,在builder中的方法也被標為過時
提交給通知服務:
這步很簡單:
notificationmanager manager=
(notificationmanager)
getsystemservice
(context.notification_service)
;//獲取訊息服務
manager.
createnotificationchannel
(channel)
;//建立訊息通道
notification notification=
newnotification.builder
(this
,"id").
setcontenttitle
("title").
setcontenttext
("this is content").
setwhen
(system.
currenttimemillis()
).setsmallicon
(r.mipmap.ic_launcher)
.setlargeicon
(bitmapfactory.
decoderesource
(getresources()
,r.mipmap.ic_launcher_round)).
build()
;manager.
notify
(55520
,notification)
;
開啟程式:
狀態列:
注意這裡如果開啟懸浮通知並且訊息通道重要性設定最高(high)就會有下圖的效果:
最後貼兩張qq的訊息管理設定(miui10預設的):
MySql8 0以上版本安裝
1 配置環境變數 變數名 mysql home 變數值 mysql存放路徑 例如 d mysql 8.0.20 winx64 2 生成data檔案 以管理員身份執行cmd 進入d mysql 8.0.20 winx64 bin下 執行命令 mysqld initialize insecure use...
本地安裝mysql8 0以上版本
2.解壓zip包,並將解壓檔案放入乙個資料夾下 3.配置環境變數 目的是為了避免在cmd視窗下操作時反覆切換路徑 4.在安裝根目錄下新增 my.ini檔案 data資料夾是初始化資料庫之後才有的,my.ini檔案預設是沒有的,自己可以編寫如下 mysqld 設定3306埠 port 3306 設定m...
8 0以上版本mysql 安裝及root 密碼修改
1 配置環境變數 變數名 mysql home 變數值 e programfile wamp mysql 8.0.13 winx64 2 生成data檔案 以管理員身份執行cmd 進入e programfile wamp mysql 8.0.13 winx64 bin 下 執行命令 mysqld i...