1

我希望我的 Android 应用程序只实例化一次它的主屏幕活动。我正在适当地管理后台堆栈以实现此目的,但刚刚在应用程序启动时发现了一个方向问题。

从视觉上看,这种方向变化只在模拟器上显示出来。(可能运行速度太快而无法在设备上观察到)。

这是发生的事情::->

activity.onCreate()
activity.onDestroy()
activity.onCreate()

这个顺序是有道理的,并且是由方向的变化引起的。(对我来说)没有意义的是它发生了,因为我做了以下事情来防止方向改变::->

AndroidManifest.xml 包含

android:screenOrientation="portrait"

对于我的所有活动和主屏幕活动 onCreate() 方法,我正在调用

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

那么为什么我会改变方向呢?

4

1 回答 1

2

添加android:screenOrientation="portrait"清单文件,在其中声明您的活动,如下所示

<activity android:name=".yourActivity"
          ....
          android:screenOrientation="portrait"/>

如果你想使用 java 代码试试

setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 

在您setContentView参加活动之前onCreate()

这里

于 2012-10-05T08:28:45.360 回答