应用程序中所有活动的 WindowManager
WindowManager for all activities in an application
我的最终目标是使用 WindowManager 并向其添加将在我的整个应用程序中持续存在的视图(不使用 TYPE_SYSTEM_OVERLAY
需要 API >=23 中的用户的特殊许可) .
我目前做的是:
- 在该应用启动时注册 ActivityLifecyclerCallback
- 将我想要保留的视图添加到 windowManager 并在旁边保留它们的列表。
- 每次 activity 恢复时,我都会这样做:
- 调用
currentActivity.getWindowManager()
获取当前activity的WindowManager
- 重新充气并召回
wm.addView(..)
之前添加的所有 windows。
但是,无论我做什么,调用 addView
时都不会添加 windows,就像 window 管理器只是忽略该调用一样..
我正在使用 TYPE_APPLICATION 作为 windows。
我尝试使用 currentActivity.getSystemService(WINDOW_MANAGER)
而不是 currentActivity.getWindowManager()
谁能告诉我为什么?
与所有信念相反 TYPE_APPLICATION_ATTACHED_WINDOW
或 TYPE_APPLICATION
或任何包含 APPLICATION
一词的东西(顺便说一下,这是有道理的)是 NOT要走的路。
我不知道为什么,如果有 Google 工程师 来回答那会很好,但解决方案是使用 TYPE_TOAST
(?!?!?)
还要确保在活动之间切换时从新的 activity 获得一个新的 WindowManager
实例,这样如果您添加 windows 或删除它们,它就是一个有效的实例。
谢谢..命名约定和缺乏好的文档浪费了 4 个小时:)
我的最终目标是使用 WindowManager 并向其添加将在我的整个应用程序中持续存在的视图(不使用 TYPE_SYSTEM_OVERLAY
需要 API >=23 中的用户的特殊许可) .
我目前做的是:
- 在该应用启动时注册 ActivityLifecyclerCallback
- 将我想要保留的视图添加到 windowManager 并在旁边保留它们的列表。
- 每次 activity 恢复时,我都会这样做:
- 调用
currentActivity.getWindowManager()
获取当前activity的WindowManager
- 重新充气并召回
wm.addView(..)
之前添加的所有 windows。
- 调用
但是,无论我做什么,调用 addView
时都不会添加 windows,就像 window 管理器只是忽略该调用一样..
我正在使用 TYPE_APPLICATION 作为 windows。
我尝试使用 currentActivity.getSystemService(WINDOW_MANAGER)
而不是 currentActivity.getWindowManager()
谁能告诉我为什么?
与所有信念相反 TYPE_APPLICATION_ATTACHED_WINDOW
或 TYPE_APPLICATION
或任何包含 APPLICATION
一词的东西(顺便说一下,这是有道理的)是 NOT要走的路。
我不知道为什么,如果有 Google 工程师 来回答那会很好,但解决方案是使用 TYPE_TOAST
(?!?!?)
还要确保在活动之间切换时从新的 activity 获得一个新的 WindowManager
实例,这样如果您添加 windows 或删除它们,它就是一个有效的实例。
谢谢..命名约定和缺乏好的文档浪费了 4 个小时:)