0

これが状況です: 私のアプリには 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 を実行する必要があると想定しているため、メイン アクティビティでの接続は処理されません。私は何をすべきか?

4

1 に答える 1

0

一般にAsyncTask、バックグラウンド スレッドのライフサイクルが 1 つのアクティビティのライフサイクルに含まれる場合に を使用します。それ以外の場合は、を使用しServiceます。

于 2014-10-31T06:22:58.280 に答える