适用于应用程序

时间:2017-03-08 13:49:33

标签: android view android-windowmanager

我的最终目标是使用WindowManager并为其添加视图,该视图将在整个应用中保留(不使用需要API> = 23中用户的特殊权限的TYPE_SYSTEM_OVERLAY

我现在所做的是:

  1. 在该应用启动时注册ActivityLifecyclerCallback
  2. 将我想要保存的视图添加到windowManager中并保留它们的列表。
  3. 每次恢复活动时我都这样做:
    1. 通过调用currentActivity.getWindowManager()
    2. 获取当前活动的WindowManager
    3. 重新整理并回忆wm.addView(..)到之前添加的所有窗口。
  4. 然而,无论我做什么,在调用addView时都不会添加窗口,它就像窗口管理器只是忽略了那个调用..

    我正在使用TYPE_APPLICATION作为窗口。

    我尝试使用currentActivity.getSystemService(WINDOW_MANAGER)代替currentActivity.getWindowManager()

    任何人都可以说出原因吗?

1 个答案:

答案 0 :(得分:0)

与所有信仰TYPE_APPLICATION_ATTACHED_WINDOWTYPE_APPLICATION或其中包含APPLICATION一词的任何信息相反(顺便说一句,这是有意义的) NOT 的方式去吧。

我不知道为什么以及 Google工程师在这里回答哪个会很好但解决方法是使用TYPE_TOAST (?!?!?)< / em>的

还要确保在切换活动时从新活动中获取新的WindowManager实例,因此如果添加窗口或删除它们,则它是一个有效的实例。

非常感谢..浪费了命名约定缺乏良好的文档 4小时:)