- スレッドを開始するAndroidアクティビティがあります。
- スレッドで、永続的なTCPソケット接続を開きます。
- ソケットがサーバーに接続すると、動的データがダウンロードされます。
- スレッドは、データが受信されると、Handlerクラスを使用してアクティビティにメッセージを送信します。
これで、ユーザーがポートレートモードからランドスケープモードに切り替えた場合、アクティビティはonDestroy呼び出しを受け取ります。この時点で、ソケットを閉じてスレッドを停止します。
Androidがランドスケープモードに切り替わると、onCreateが再度呼び出され、ソケットの再接続を行う必要があります。また、サーバーには以前に送信されたものを知る機能がないため、アクティビティが受信したすべてのデータをもう一度ダウンロードする必要があります。つまり、「再開」機能はありません。
したがって、問題は、ランドスケープモードが変更されたときに常に再送されるデータがたくさんあることです。
ここでの私のオプションは何ですか?
- サーバーへのソケットトラフィックを処理するサービスを作成する必要があるため、サーバーがサービスで送信したすべてのデータを常に取得します。
- それとも、ランドスケープモードをまとめて無効にする必要がありますか?
- または、私の最善の策は、非常に大きな仕事である私のサーバーを書き直すことです:-)
すべての入力を歓迎します:-)
/ヘンリック