カスタム ArrayAdapter が取り込まれた ListView があります。各行には、インターネットからダウンロードされた画像とテキストが含まれています。
問題は、デバイスの向きを変えるとすべてがリセットされることです。ListView が空になり、テキストと画像のダウンロードが再び開始されます。
どうすればこれを回避できますか?
カスタム ArrayAdapter が取り込まれた ListView があります。各行には、インターネットからダウンロードされた画像とテキストが含まれています。
問題は、デバイスの向きを変えるとすべてがリセットされることです。ListView が空になり、テキストと画像のダウンロードが再び開始されます。
どうすればこれを回避できますか?
問題の根本は、向きが変わったときに Android がアクティビティを再作成することです。onSaveInstanceState()とonRestoreInstanceState( )をオーバーライドすることで、アクティビティの状態を保存/復元できます。方向の変更後も同じように見えるように、アクティビティに関して重要と思われるものを保存します。
もう 1 つのオプションは、アクティビティの Android XML に以下を追加して、アクティビティの再作成を無効にすることです。
android:configChanges="orientation|keyboardHidden"
AsyncTask
このオプションは、ビットマップのダウンロードに使用している場合にも役立ちます。アクティビティが毎回再作成される場合は、ダウンロード タスクを停止して再起動する必要があります。
onSaveInstanceStateとonRestoreInstanceStateをオーバーライドして、構成の変更を自分で処理する必要があります。追加することで、Androidがアクティビティを再開しないようにすることもできます
android:configChanges="orientation|keyboardHidden"
マニフェストで。
また、Androidでビットマップを使用する際の重要なヒントについては、 http://developer.android.com/training/displaying-bitmaps/display-bitmap.htmlを参照してください。