私のコードは、小規模および大規模なデバイス (Motorola Xoom、Samsung Galaxy Player 4.0、Kyocera Digno) で期待どおりに動作しますが、Samsung Galaxy Tab 7.0 では、ACTION_IMAGE_CAPTURE
インテントを起動して写真を撮った後、アプリが返されたときにonDestroy()
が呼び出され、その後に , が続きonCreate()
ます。 then onActivityResult()
が呼び出され、最後にonDestroy()
andonCreate()
が再度呼び出されますが、これはもちろん望ましくありonActivityResult()
ません。
可能性のある手がかり:
- Galaxy Tab 7.0 の画面サイズはマニフェスト ファイルで明示的にサポートされていません (サポートされていない画面サイズでテストしたデバイスはこれだけです)。 . どちらの UI も同じ (悪い) 動作をします。
- 写真をプレビューすると、カメラ アクティビティの向きが切り替わるようです。私のアプリはポートレート モードのみをサポートします (編集:小さい画面では - 非特大画面では、向きの変更をサポートします)。向きの変化が私の活動を何らかの形で破壊しているのかもしれません。
- 別のインテント (電子メール インテント) から起動して戻ることを試みましたが、その場合、アプリは破棄されず、再作成されません。
詳細情報やコード サンプルが必要な場合はお知らせください。
編集:問題は向きの変更に絞り込まれました。Karthikの回答によると、設定android:configChanges="orientation"
により問題が修正されます。唯一の問題は、私のアプリが特大画面での向きの変更をサポートしていることです。この設定は、これらのデバイスでこの機能を壊します。android:configChanges="@string/config_changes"
画面サイズに応じて異なる文字列を使用して提供しようとしましたが、「インストール エラー: INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION」が表示されます。これによると、Android アクティビティ、マニフェストの android:configChanges を Java コードでオーバーライドする方法は? 、プログラムで設定する方法はありません。アプリですべての向きの変更を手動で処理する唯一のオプションはありますか?