可访问性服务中具有“WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY”属性的WindowManager动画

问题描述 投票:0回答:1

我正在开发一个具有辅助功能服务的应用程序。通过此服务,我将通过在顶部显示窗口管理器屏幕来执行我的后端功能(按钮单击并导航到其他屏幕)。在这个窗口管理器屏幕中我需要添加任何动画(在最坏的情况下,我必须添加一个简单的进度条)。我的问题是,

1)如果我将WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY(对于Lollipop及以下)或WindowManager.LayoutParams.TYPE_ACCESSIBILITY_OVERLAY(对于Marshmallow及以上)属性添加到窗口管理器,我正在成功完成后端功能但动画正在挂起。它也发生在简单的进度条上。

2)如果我将WindowManager.LayoutParams.TYPE_PHONE添加到窗口管理器,我成功显示动画但后端功能不起作用。

任何小的帮助都是值得的。提前致谢。

android accessibilityservice android-accessibility
1个回答
0
投票

添加视图的辅助功能服务的难点在于获得正确的权限。你接近方法的方法是正确的。这种动画中的性能问题是一个无关的问题。将视图成功添加到窗口管理器后,对视图性能的任何关注都与关注点类似,就好像您处于活动的上下文中一样。除非,您有某种类型的内存泄漏,查看泄漏等。直接向窗口管理器添加覆盖视图容易管理不善,因为您还必须自己删除这些视图。否则旧的覆盖实例将永远存在并且会降低性能。

从服务的角度出发,坚持使用选项一,并在本决策范围之外找出您的性能问题。它们只是间接相关的。您的性能问题不是由此决定直接导致的,而是其他地方的错误。这些可能是什么我只能提供一个推测性答案。

© www.soinside.com 2019 - 2024. All rights reserved.