22

電話またはエミュレーターの向きを変更すると、LogCat で次の出力が得られます。

04-09 11:55:26.290: INFO/WindowManager(52): Setting rotation to 1, animFlags=0
04-09 11:55:26.300: INFO/ActivityManager(52): Config changed: { scale=1.0 imsi=310/260 loc=en_US touch=3 keys=2/1/1 nav=3/1 orien=2 layout=18}
04-09 11:55:26.460: INFO/UsageStats(52): Unexpected resume of client while already resumed in client
04-09 11:55:26.579: INFO/SearchPosition(807):  Activity is paused
04-09 11:55:26.689: INFO/SearchPosition(807):  Activity is resuming

SearchPosition は、表示されるアクティビティです。アクティビティの onPause メソッドにはアクティビティが一時停止され、アクティビティの onResume メソッドにはアクティビティが再開されています。

エラーメッセージを少しググったのですが、意味がよくわかりません。画面の向きを変更した後、古いアクティビティが適切に破棄されていない可能性があると思います。

これは正しいです?はいの場合、エラーの原因は何ですか? これが正しくない場合は?この出力の意味は何ですか?

4

3 に答える 3

12

これを manifest.xml のアクティビティ宣言に追加します。

android:configChanges="orientation"

例:

<activity android:name=".MyApp" android:configChanges="orientation" android:label="@string/app_name">

https://developer.android.com/guide/topics/manifest/activity-element.html#config

QWERTY キーボードを搭載したデバイスの場合

android:configChanges="keyboardHidden|orientation"
于 2010-04-09T17:12:41.613 に答える
4

AdroidManifest.xml ファイルでのandroid:configChanges="orientation"の使用例:

 <activity android:name=".Sound"
            android:configChanges="orientation"
                  android:label="@string/app_name" android:debuggable="true" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
于 2011-01-07T00:36:52.010 に答える
3

私は最初にここでつまずき、彼のコメントで leventix によって提供されたリンクを読んだ後、両方の答えが実際には間違っていると思わずにはいられません。次に、同じ問題に関する以前の質問 3851363 を見つけました。メッセージは良性です。

間違っている場合は訂正してください。ただし、構成オプション android:configChanges="orientation" は、構成の変更を自分で処理し、通常の onDestroy/onCreate サイクルを実行しない場合にのみ使用する必要があることを理解しました。

Android-8 は、向きが変わると、通常の状況では不必要に問題のエラーを生成するようです。

于 2011-05-31T12:56:18.150 に答える