私のアプリケーション-WebViewを使用したアクティビティは、画面の回転時に自動更新され、アクティビティが最初の1に戻りました。
例:WebViewはA-> BまたはBCから切り替えると3つのアクティビティ(A、B、C)を処理し、画面が回転しているときにAに戻ります。
私の質問:イベント画面の回転でアクティビティを維持するにはどうすればよいですか?
私のアプリケーション-WebViewを使用したアクティビティは、画面の回転時に自動更新され、アクティビティが最初の1に戻りました。
例:WebViewはA-> BまたはBCから切り替えると3つのアクティビティ(A、B、C)を処理し、画面が回転しているときにAに戻ります。
私の質問:イベント画面の回転でアクティビティを維持するにはどうすればよいですか?
この問題に取り組むには、複数のアプローチがあります。
簡単な方法は、マニフェストandroid:configChanges="orientation|screenSize"
の関連するものに追加することです。Activity
このフラグを設定することで、Androidにを破棄しないように指示し、Activity
すべての向きの変更(存在する場合)を自分で処理するように指示します。
より現代的なアプローチは、フラグを使用して、WebView
内部をaに入れ、Fragment
そのインスタンスを保持するようにすることです。setRetainInstance(true)
ホスティングActivity
は向きの変更時に破壊されますが、それ自体を再作成する必要なしに、Fragment
含むものWebView
は単に切り離されて再接続されます。この機能の例は、APIデモにあります。Fragment
サポートライブラリはHoneycomb以前の互換性のあるフラグメントの実装を提供しているため、「通常の」クラスのAPIレベルにだまされないように注意してください 。
@kirgyコメントを強調 orientation|screenSize
表示します。APIが3.2より大きい場合は、マニフェストに追加する必要があります。APIがないと機能しない場合があります。
画面の向きが変わったときに再起動しないように、マニフェストファイルに追加android:configChanges="orientation"
します。
お気に入り::
<activity android:name=".MyActivity"
android:configChanges="orientation|screenSize"
android:label="@string/app_name">
いくつかの参考資料については、これを参照してください。