gpt4 book ai didi

android - 如何确定 Android Activity 正在使用哪个显示器?

转载 作者:行者123 更新时间:2023-11-30 05:07:30 25 4
gpt4 key购买 nike

从 Android O 开始,以下代码可用于在默认显示器以外的显示器上启动 Activity:

ActivityOptions options = ActivityOptions.makeBasic();
options.setLaunchDisplayId(d.getDisplayId());
Intent i = new Intent(this, OtherActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i, options.toBundle());

在这种情况下,将创建一个新任务,该任务可能会在备用显示器上启动其他 Activity 。从 Activity 中我如何检测当前正在使用哪个显示器?我原以为 Window 类会告诉我,但我在那里找不到任何函数。

最佳答案

Ben P. 的评论是正确的,尽管名称 WindowManager#getDefaultDisplay() 实际上返回了 Display 对象,该对象恰好与 WindowManager 当它被获取时,它将准确地反射(reflect) Activity 当前正在运行的显示。

Returns the Display upon which this WindowManager instance will create new windows.

Despite the name of this method, the display that is returned is not necessarily the primary display of the system (see Display.DEFAULT_DISPLAY). The returned display could instead be a secondary display that this window manager instance is managing. Think of it as the display that this WindowManager instance uses by default.

To create windows on a different display, you need to obtain a WindowManager for that Display. (See the WindowManager class documentation for more information.)

因此,假设您调用了 Activity#getSystemService 来获取 WindowManager,您应该会得到正确的 Display 对象。 WindowManagerSearchManager 似乎是 special case managers与大多数经理不同,他们了解获得他们的背景。

关于android - 如何确定 Android Activity 正在使用哪个显示器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54316060/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com