一 功能解析
气泡内置于“通知”系统中。它们浮动在其他应用内容上层,并会跟随用户转到任意位置。气泡可以展开以显示应用功能和信息,并可在不使用时收起。当设备处于已锁定状态或“显示屏始终保持开启状态”处于活动状态时,气泡就会像普通的通知那样显示。
二 作用分析
让用户的通知消息以一种更美观的方式展示,气泡旨在成为 SYSTEM_ALERT_WINDOW的替代方案; 当APP有新的通知消息,APP的Icon上会自动追加未读消息提醒蓝点(限androidR 的版本)。
三 实现的伪代码
(1) 前置条件
气泡的展开视图是根据您选择的 Activity 创建的。此Activity 需要经过配置才能正确显示为气泡。此Activity 必须可以调整大小,支持文档界面模式下启动。如果不满足其中任何要求,便会改为显示为通知。
(2) 参考实例实现代码
// androidR 系统 发送气泡通知样式到 通知栏的功能 @RequiresApi(Build.VERSION_CODES.Q) private fun androidR_bubbleNotification() { val target = Intent(this, PressorTestActivity::class.java) val contentIntent = PendingIntent.getActivity(this, 0, target, PendingIntent.FLAG_UPDATE_CURRENT) // 气泡窗口点击之后,窗口点击之后跳转的activity 跟contentIntent 的目标activity设置为不相同个, // 最后还是为已contentInten设置的目标Intent为准 val bubbleIntent = PendingIntent.getActivity( this, 2020, target, PendingIntent.FLAG_UPDATE_CURRENT) // create bubble metaData val bubbleData = Notification.BubbleMetadata.Builder() .setDesiredHeight(600) .setIcon(Icon.createWithResour