-1

この質問のベストプラクティスを探しています。

基本的に、メイン アクティビティに入る前に「スタートアップ」アクティビティを含むアプリケーションがあります。アプリケーションは最初にいくつかの HTTP 要求をスローしてサーバーと同期する必要があるため、ユーザーは何もできません。

最も簡単な方法は、HTTP 要求ごとに UI スレッドで順番に実行することです。これに特に問題はありますか?(つまり、Androidフレームワークの処理は通常ブロックされますか?、...)。これを最初のバージョンで実装し、後で以下に示すアプローチで改良したいと思います。

それ以外の場合、ユーザーの観点からは、HTTP 要求ごとに 1 つの AsyncTask を同時に開始し、次のアクティビティを起動できるときに UI スレッドで同期する方がよいでしょうか。

乾杯。l_ingenu

4

3 に答える 3

1

AsyncTaskHoneycomb から開始すると、UI スレッドでインターネット操作を使用することは許可されないため (ポリシーを変更しない限り)、HTTP 呼び出しを行うために使用します。

呼び出しが終了したら、目的の結果を に返し、onPostExecute次の呼び出しを続行するかActivity、ユーザーにエラーをスローするかを決定します。

于 2012-10-24T14:19:21.293 に答える
0

AsyncTask を使用せず、代わりにIntentServiceを使用することをお勧めします:)

于 2012-10-24T14:17:29.280 に答える
0

まず最初
に、ネットワーク アクティビティ用の UI スレッドを使用する別のスレッドを使用する必要があります
。[http://developer.android.com/training/basics/network-ops/connecting.html][1]


次に、ここで選択する必要があります。

アプリケーション全体がサーバーからのデータに依存しており、アプリケーションでコンテンツを表示する前に取得する必要がある場合は、AsyncTask を使用して onPostExecute() の次のアクティビティに移動する必要があります。

アプリケーションでデータを使用していて、ユーザーがサービスを表示している最初の画面にあまり影響がない場合。

于 2012-10-24T14:32:16.143 に答える