現在、ログインアクティビティを利用するAndroidアプリを開発しており、ユーザーがログインするとメインアクティビティになります。ユーザーがログインしている間、アプリはバックグラウンド サービス (IntentService) を使用してサーバーと通信します。サービスは取得したユーザーの詳細をデータベースに保存するため、ユーザーはアプリを起動するたびにログインする必要がありません。アプリ。
ユーザーがメイン アクティビティに入ると、アクティビティはサービスを介してサーバーからデータを取得します。このデータは、(プログラムによって) 画面に表示されます。これは、(よく知られている) Wordfeud アプリの仕組みと非常によく似ていると思います。最初にログインすると、サーバーからプレイ中のゲームを取得して表示します。
私の問題は、画面を回転させると、メイン アクティビティが破棄されて再起動され、oncreate() 関数が再度呼び出されることです。私の現在の設計では、これはデータがサーバーから再度フェッチされることを意味しますが、これはまったく不要です。ユーザーがアプリを閉じて、後で再び使用を開始した場合にのみ、データを再度取得したいと考えています。
これを修正するための最良のアイデアは何だろうかと思いますか?簡単な方法は、画面の回転を禁止することですが、私の意見では、これはあまりユーザー フレンドリーではありません。もう 1 つの方法は、アプリがサーバーと通信してユーザーをログインさせている間にすべてのデータをフェッチし、画面にリロード/フェッチ ボタンを追加して、ユーザーがデータを手動でフェッチできるようにすることです。このアプローチの欠点は、ユーザーが数時間後にアプリを再度開いた場合、データが古い/古い可能性があることです。これもあまりユーザーフレンドリーではありません。
画面が回転したときに oncreate() 関数 (の一部) をバイパスする機能など、私が気付いていないこの問題の他の解決策があるかもしれません。
これに対する解決策があるかどうか、もしそうならそれはどうなるか、私は非常に興味があります!