これが状況です: 私のアプリには 1 つのアクティビティがあり、長時間持続する TCP 接続を処理し、多くのもの (オブジェクトの HashTables、ボタン、ArrayLists、アダプターなど) で UI を動的に更新します。現時点では、AsyncTask で接続を処理し、保存する方法を探しています。
- 接続
- 動的に作成されたビューなどのすべての変数
画面が回転するか、ユーザーが電話を受けると、http://www.androiddesignpatterns.com/2013/04/retaining-objects-across-config-changes.htmlを見つけました。 これは私にはかなりクールに見えます。しかし、代わりにサービスを使用する必要があることもどこでも読んでいます。これは、TCP 接続が長く持続するのに適しているためです。AsyncTask を使用する理由:
- フラグメントを使用してTCP接続を保存できるようです
- オブジェクト、ボタンなどを回転/呼び出しから保存するために、とにかく似たようなことをする必要があります
- 接続が必要なアクティビティは 1 つだけです (複数のサービスが示されていませんか?)
サービスを提供する理由:
- TCP接続を保存するためにフラグメントを使用する必要はありません(それは本当ですか?クライアントが1つしかないため、通常のIntentService、または境界のあるサービスを使用して、これを行う必要がありますか?)
- 長時間の接続に適しています
「サービス」と言うときは、とにかくサービス内で AsyncTask を実行する必要があると想定しているため、メイン アクティビティでの接続は処理されません。私は何をすべきか?