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

时间:2017-12-22 07:06:14

标签: android accessibilityservice android-accessibility

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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