1

ドキュメントの引用:

注意:Android 3.2(APIレベル13)以降、デバイスが縦向きと横向きを切り替えると、「画面サイズ」も変化します。したがって、APIレベル13以上(minSdkVersionおよびtargetSdkVersion属性で宣言されている)で開発するときに方向の変更によるランタイムの再起動を防ぎたい場合は、「orientation」値に加えて「screenSize」値を含める必要があります。つまり、android:configChanges = "orientation|screenSize"をdecalareする必要があります

構成の変更を無視する必要がありscreenSizeます。私の最小SDKレベルは8(Android 2.2)で、ターゲットSDKレベルは13です。したがって、マニフェストで紹介する必要があります。

ただし、Androidの設定が2.2に設定されているため、Eclipseはそれを認識しません。だから私はそれを適切なレベルに変更しました、そして今それは適切に構築されます。

ただし、screenSize構成の変更がまだ利用できない古いバージョンでは問題が発生する可能性があります。(たとえば、アプリがAndroid 2.2。デバイスで実行されている場合。)つまり、マニフェストのscreenSize値が不明であるため、マニフェストを読み取るときにアプリケーションがクラッシュします。それとも、3.2より前のデバイスでは単に無視しますか?

PS:現在、実際のデバイスでテストする機会はありません。そのような重大な問題については、エミュレーターだけを信頼することはできません。

4

2 に答える 2

6

無視します。分割画面のアクションバーやその他の類似したものについても同じことが言えます。Javaとは異なり、Android OSがマニフェストから理解できないことは、基本的に無視されます。

于 2012-12-27T23:37:01.337 に答える
5

簡単な答え:無視されます。

原則として、認識されないマニフェストの値(2.2より前のデバイスのscreenSizeなど)は、まさにこの理由で無視されます。そうしないと、開発者は、古いデバイスの下位互換性を損なうことなく、新しいプラットフォームバージョンで追加された機能を使用できません。

于 2012-12-27T23:37:23.227 に答える