0

每当我使用setRequestedOrientation(int)它时,它的行为与我在Manifest.xml. (这是预期的)

我读到(来自文档):

如果 Activity 当前处于前台或以其他方式影响屏幕方向,则屏幕将立即更改(可能导致 Activity 重新启动)

实际上,这意味着每当启动应用程序时,虽然设备的方向不是将设置的方向setRequestedOrientation(int),但活动将被创建两次(一次“正常”,一次反映请求的方向)。

到目前为止,让我的活动 100% 配置更改证明是不值得的,我想要的是一种在代码中设置请求方向的方法,而不必两次创建我的活动。有办法吗?

(最好不要使用骇人听闻的解决方法,例如在 configChanges 中设置 'orientation' 标志)

编辑:

接受的答案是正确的,它根本不合逻辑(没有意义)。对于新读者,我所做的是添加一个 stub-activity (主要是没有太多作用的空活动)。它所做的只是getRequestedOrientation()在它与我想要的不同时使用,我将调用setRequestedOrientation(int),否则启动我想要的活动并在其 onCreate 中还调用 以setRequestedOrientation(int)使其保持在请求的方向。

4

1 回答 1

2

不,这没有意义。如果您以编程方式设置方向,则 Activity 已经在运行,然后您可以执行任何操作来更改每个方向的重复创建。

于 2015-02-03T16:03:45.653 回答