每当我使用setRequestedOrientation(int)
它时,它的行为与我在Manifest.xml
. (这是预期的)
我读到(来自文档):
如果 Activity 当前处于前台或以其他方式影响屏幕方向,则屏幕将立即更改(可能导致 Activity 重新启动)
实际上,这意味着每当启动应用程序时,虽然设备的方向不是将设置的方向setRequestedOrientation(int)
,但活动将被创建两次(一次“正常”,一次反映请求的方向)。
到目前为止,让我的活动 100% 配置更改证明是不值得的,我想要的是一种在代码中设置请求方向的方法,而不必两次创建我的活动。有办法吗?
(最好不要使用骇人听闻的解决方法,例如在 configChanges 中设置 'orientation' 标志)
编辑:
接受的答案是正确的,它根本不合逻辑(没有意义)。对于新读者,我所做的是添加一个 stub-activity (主要是没有太多作用的空活动)。它所做的只是getRequestedOrientation()
在它与我想要的不同时使用,我将调用setRequestedOrientation(int)
,否则启动我想要的活动并在其 onCreate 中还调用 以setRequestedOrientation(int)
使其保持在请求的方向。