1

Androidアプリでホーム画面のアクティビティを1回だけインスタンス化したいと思います。これを実現するためにバックスタックを適切に管理していますが、アプリの起動時に向きの問題を発見しました。

視覚的には、この向きの変化はエミュレーターにのみ表示されます。(おそらく、実行速度が速すぎてデバイスで観察できません)。

これが何が起こるかです::->

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 に答える