每当我使用setRequestedOrientation(int)
时,它的行为都与我在Manifest.xml
中声明方向时的行为不同。
(这是预期的)
我读过(来自文档):
如果活动当前处于前台或以其他方式影响屏幕方向,屏幕将立即更改(可能导致活动重新启动)
实际上,这意味着每当应用程序启动时,如果设备的方向不是将使用setRequestedOrientation(int)
设置的方向,则活动将创建两次(一次'通常&#39 ;并且一次反映所要求的方向。)
到目前为止,让我的活动100%配置变更证明是不值得的,我希望能够在代码中设置所请求的方向,而无需两次创建我的活动。< / strong>有办法吗?
(最好不使用hackish解决方法,例如在configChanges中设置&#39; orientation&#39;标志)
编辑:
接受的答案是正确的,它根本不合乎逻辑(没有意义)。对于新读者,我所做的是添加一个存根活动(主要是空活动并没有做太多)。它只是使用getRequestedOrientation()
当它与我想要的不同时,我会调用setRequestedOrientation(int)
,否则启动我想要的活动,并在其onCreate中也调用setRequestedOrientation(int)
来保持它是在要求的方向。
答案 0 :(得分:2)
不,这没有意义。如果以编程方式设置方向,则“活动”已在运行,然后您可以执行任何操作以更改每个方向的重复创建。