17

オリエンテーションを変更しても再作成しないでください。マニフェストのアクティビティ宣言に次を追加しました:ハニカムのオリエンテーションの変更

android:configChanges="orientation" 

Android 2.3では、これは完全に機能します。 On HONEYCOMB_MR2onCreateとにかく、方向を変更すると呼び出されます。

オリエンテーションを変更した後に活動を再現するのを防ぐために、HONEYCOMB_MR2で行う必要があることはありますか?

+0

あなたは 'android:configChanges =" keyboardHidden | orientation "'を試したことがありますか?私はそれが変わるとは期待しませんが、試してみる価値があります。 – CommonsWare

+0

@CommonsWareそれはありませんが、すべての可能な値を試して、私は動作するものを見つけました。私の答えを見てください。 – hpique

答えて

37

明らかにorientation|screenSize(?)を使用すると、ハニーコムのonCreateを防ぐことができ、これまでのAndroidバージョンでは(これまでのところ)何も壊れていないようです。

android:configChanges="orientation|screenSize" 

、これは必要であると私は本当にこの新しい値についてdocumentationを理解していない理由はありませんアイデア。

私はHONEYCOMB_MR2でオリエンテーションが変更されたときに、これを2つの設定の変更(オリエンテーションと画面サイズ)とみなしていると思います。両方とも、デフォルトでアクティビティーを再作成しようとします。

+0

ええ、それは新しいものです。あなたの 'android:targetSdkVersion'値は? – CommonsWare

+0

アンドロイド:targetSdkVersion = "13" – hpique

+2

これは、ドキュメントが言う内容を引き起こすでしょう。これは新しいリソースセットの修飾子と関係があります:http://android-developers.blogspot.com/2011/07/new-tools-for-managing-screen-sizes.html基本的に、以前の小規模/正常/ large/xlarge、port/land stuffを使用して、ディメンションに基づいてリソースセットを組み込む場合、それらのディメンションの変更を構成の変更とみなします。おそらく、これらの寸法が向きによって変化しないデバイスが存在する可能性がある(例えば、第2の画面トグル可能なオン/オフを有するデュアルスクリーンデバイス)。 – CommonsWare

関連する問題