IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Android中另外一种降低Window窗口层级的方法 -> 正文阅读

[移动开发]Android中另外一种降低Window窗口层级的方法

背景

由于Launcher卡片是用WindowManager. addView(card)的方式,添加到屏幕上(卡片是系统窗口),这导致与其他系统弹窗(激活对话框、输入法对话框等)的显示层级会发生冲突。具体现象如下:
在这里插入图片描述
在这里插入图片描述

明确问题

根据需求文档,期望的各个浮窗的层级定义如下:
期望层级:
在这里插入图片描述
实际层级:
在这里插入图片描述
从上面明确问题过程中,可以推导出:如果能降低Launcher卡片的显示层级。即降低到和地图一样的层级,使得卡片的生命周期能跟随地图Activity一致,随地图显示和隐藏,则可以让其他对话框都浮在Launcher卡片上面。即做成地图Activity上的一个PopupWindow。

对策

临时措施

  1. 导航在pause的时候,隐藏卡片。
  2. 导航在输入法弹起来的时候,隐藏卡片。

永久措施

方案一:直接添加应用层窗口, 需要获取导航进程的token。
方案二:导航以AAR的方式集成卡片。需要调整launcher其他模块和卡片的通信方案,改动比较大。
方案三:launcher留出容器,加载导航的activity。

临时方案都可能导致其他问题,综合考量,选择了侵入性小的永久实施方案一:
Launcher卡片SDK提供AIDL接口,导航通过这个接口,把它的activity的token传到Launcher进程来,Launcher以wm.addView()的方式,把window token设置这个acitivityToken,就可以把卡片显示成地图的子窗口了。
[This type of content is unavailable for download at the moment.]
获取activity的token代码如下:
在这里插入图片描述

测试效果:
在这里插入图片描述

总结

解决问题过程中,最关键的是明确问题,发现问题的规律。这里就是卡片层级问题。当发现用activity级别的window type时, 会报bad token的异常,可推导出系统添加window需要一个token。查看源码发现token就是一个binder对象,所以我们可以把地图activity的token通过binder通信传递到Launcher这边来。

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-07-03 10:57:45  更:2022-07-03 10:59:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 3:04:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码