Android常駐通知欄

山有木xi發表於2020-12-20

在各類音樂APP中,都有著常駐通知欄這個東西,它的優點自然不言而喻,在應用處於後臺時也可以執行相關操作,而且因為是常駐的所以根本不用擔心不小心被自己清除了

而想要建立可使用的常駐通知欄,離不開RemoteViews,透過RemoteViews獲取相關佈局,然後將佈局放入通知欄

程式碼如下

normalView = RemoteViews(activity?.packageName, R.layout.normal_notification)
val manager: NotificationManager =
    activity?.getSystemService(AppCompatActivity.NOTIFICATION_SERVICE) as NotificationManager
    val channel = manager.getNotificationChannel("chat")//獲取通知渠道設定
    mnoficcation = mContext?.let {
    NotificationCompat.Builder(it, "chat")//通知渠道id
        .setSmallIcon(R.mipmap.ic_launcher)//通知的圖示
        .setTicker("")//通知名字
        .setContentIntent(pendingIntent) //通知被點選後跳轉的pendingIntent
        .setContent(normalView) //設定普通notification檢視
        .setPriority(Notification.PRIORITY_MAX) //設定最大優先順序
        .build()
}
manager.notify(No, mnoficcation)

到這一步一個基礎的通知欄便建立完畢,或許有人會發現,這樣的通知欄還是會被清除,那到底怎麼才能做成常駐的通知欄呢?

這就要用到一個關鍵的程式碼

.setOngoing(true)

有了這個以後通知便常駐在通知欄,同時還有一個地方,就是常駐通知欄,長按會顯示出一個放大的remoteview,這個程式碼是

.setCustomBigContentView(bigView) //設定顯示bigView的notification檢視


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69917874/viewspace-2743777/,如需轉載,請註明出處,否則將追究法律責任。

相關文章