Android O 8 0 以上系統使用通知

2021-09-25 14:45:55 字數 2504 閱讀 2301

根據《第一行** 第二版》第八章中通知的寫法,在我自己手機上除錯的時候沒有任何反應。

查閱資料後發現,因為我的手機系統是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...