如何从 InputMethodService 获取窗口?

Bar*_*man 5 android android-view android-windowmanager

是否可以获取特定 View(或)的 Window 对象PopupWindow

我的应用程序是一个键盘,因此它是一个服务(一个InputMethodService),而不是一个活动。因此我不能使用Activity.getWindow(). 然而,它有视图,所以它大概也有一个窗口,不是吗?我怎样才能得到它?

提前致谢...

Bar*_*man 2

我找到了解决方案:

    InputMethodService ims;
    ...
    Dialog dialog = ims.getWindow();
    Window window = dialog.getWindow();
Run Code Online (Sandbox Code Playgroud)

或者简单地:

    Window window = ims.getWindow().getWindow();
Run Code Online (Sandbox Code Playgroud)

(这适用于 InputMethodService,但不一定适用于其他服务。)