在各类音乐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视图

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐