メインクラスに、インターネットからデータをフェッチするメソッドがあります。すべてが終わった後、デバイスを動かして画面の向きを変えると、すべてが最初からやり直します(ロード画面を表示しながらデータを取得します)。デバイスの画面の向きが変わっても、その瞬間までに行われたことをすべて消去しないように、メソッドを配置できる場所はありますか?ありがとう。
3 に答える
あなたに起こっていることは、アクティビティが再作成されるたびに、Android のグッド プラクティスに従って、再作成されるアクティビティを処理する必要があるということです。これは、デバイスのリソースが少なくなると、いつでも Android がアクティビティを破棄する可能性があるためです。アクティビティの状態を保存し、それとリンクを復元する方法をご覧ください。
シングルトン クラスを使用してデータを格納できます。より簡単な方法を好む場合は、データを静的として配置することもできるため、方向の変更によってデータが破棄されることはありません。
あなたのアクティビティが再び作成されていると思います。その場合、再度ロードします。
1)。オーバーライドすることで向きの変更を処理できます
public void onConfigurationChanged(Configuration newConfig)
マニフェスト ファイルのアクティビティ宣言に、次の行を追加します。
android:configChanges="orientation|screenSize|keyboardHidden"
2)。上記の回答で Aerilys が述べたように、シングルトン クラスを使用してデータを格納できます。読み込み画面を表示する前に、1トンのオブジェクトにデータがあるかどうかを確認してください。はいの場合、ロード画面の表示をスキップします