android - 如何在 Android 中以编程方式更改方向

标签 android testing android-emulator

我试过以下方法:

Activity a = getActivity();
a.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
Thread.sleep(2000);
a.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
Thread.sleep(2000);

在安卓模拟器上。但它与按 Ctrl+F11 手动旋转屏幕的方式并不完全相同。

那么以编程方式更改方向的正确方法是什么?

最佳答案

这应该是正确的做法。这是你的测试失败了。

首先,不要使用Thread.sleep,它会卡住你的整个应用程序并阻止任何事情发生(包括方向改变)。尝试使用 Handler反而。

其次,更改很可能不会立即发生,而只会在您离开 onCreate()(可能还有其他几个 lifecycle methods)之后才会发生。

第三,如果你改变方向,你的 Activity 将是 destroyed and recreated .所以你不能真正在单个 Activity 实例中来回切换。

关于android - 如何在 Android 中以编程方式更改方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11298570/

相关文章:

android - 如何通过 SDK 在每个 session 中实现 Google Places 自动完成功能?

selenium - 如何在XPATH中使用变量,应该在关键字或测试中设置哪个值?

visual-studio-2010 - CodedUI 测试 : recognize html entities character

android - 无法启动 Android 模拟器 : "Unable to load VM from snapshot"

android将数据库从内部存储复制到外部存储返回空数据库

java - HttpClient只会执行一次Android

java - 当我尝试保存滚动位置时应用程序崩溃

testing - 尝试验证模式时面对 java.lang.ClassNotFoundException : com. intuit.karate.demo.util.SchemaUtils

android - 停止按钮不适用于 Android Studio 中的 flutter

android - SipManager.newInstance 不适用于 android Gingerbread