确定方向时应该如何使用 android:configChanges

发布于 2024-12-19 18:50:34 字数 364 浏览 1 评论 0原文

目前,我正在处理动态壁纸中的方向,清单中的服务设置设置为:

android:screenOrientation="sensor"
android:configChanges="orientation"

我听到有人说我应该使用:

android:screenOrientation="sensor"
android:configChanges="keyboard|orientation"

注意 - 我在 onConfigurationChanged() 中使用一些自定义代码code> method

我应该这样做的正确方法是什么?

Currently I am handling orientation in my live wallpaper with my service settings in the manifest set to:

android:screenOrientation="sensor"
android:configChanges="orientation"

I've heard some people say I should be using:

android:screenOrientation="sensor"
android:configChanges="keyboard|orientation"

Note -- I am using some custom code inside the onConfigurationChanged() method

What is the correct way I should be doing it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

半城柳色半声笛 2024-12-26 18:50:34

android:配置更改
列出活动将自行处理的配置更改。当运行时发生配置更改时,默认情况下 Activity 会关闭并重新启动,但使用此属性声明配置将阻止 Activity 重新启动。相反,该活动保持运行状态并调用其 onConfigurationChanged() 方法。

因此,如果您只需要管理旋转,键盘标志就没用了,因为文档说:

“键盘”键盘类型已更改 - 例如,用户插入了外部键盘

事件发生时将调用 onConfigurationChanged() 回调。因此,您的自定义代码位于回调 self 内部是正确的。

android:configChanges
Lists configuration changes that the activity will handle itself. When a configuration change occurs at runtime, the activity is shut down and restarted by default, but declaring a configuration with this attribute will prevent the activity from being restarted. Instead, the activity remains running and its onConfigurationChanged() method is called.

So if you need to manage only the rotation, the keyboard flag is useless since documentation says:

"keyboard" The keyboard type has changed — for example, the user has plugged in an external keyboard

the onConfigurationChanged() callback is called when the event occurs. So it is correct that your custom code is inside the callback self.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文