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

时间:2012-07-02 17:45:25

标签: 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);
Android模拟器上的

。但它的行为方式与按Ctrl + F11手动旋转屏幕的方式不同。

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

2 个答案:

答案 0 :(得分:4)

这应该是正确的方法。这是你的考验已经破裂。

首先,不要使用Thread.sleep,它会冻结整个应用程序并防止发生任何事情(包括方向更改)。请尝试使用Handler代替。

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

第三,如果您更改方向,您的活动将为destroyed and recreated。因此,您无法在单个Activity实例中来回切换。

答案 1 :(得分:2)

除非您手动旋转设备,否则Android模拟器通常不会旋转,您实际使用的代码应该在真实设备上运行。你真的在真实的设备上试过吗?