1

API15以降の新しいフラグメントと少し混乱しています。私は古いAPI10でジンジャーブレッドバージョンを開発していました。AsyncTaskメインアクティビティのデータをダウンロードして内部ストレージに保存し、別の方法を使用してリストビューにデータを入力することで、必要なデータを取得するために使用した方法AsyncTask

ここで、API 15マスターディテールフローから始めて新しいアプリを作成することにしました。それは、携帯電話やタブレットにとってはちょっとクールなフラグメントアクティビティとフラグメントから始まります。だから私の質問は、古い方法AsyncTaskを使用することによってそれはまだ実行可能ですか、それともデータをダウンロードしてリストビューにデータを入力するために他の方法を使用することをお勧めしますか?

4

3 に答える 3

1

どのバージョンのAPIでも、インターネットからのデータのダウンロードなどの長時間実行されるタスクには、別のスレッド(この場合はAsyncTask doInBackgroundメソッド)を使用することを常にお勧めします。

于 2013-03-25T14:46:24.707 に答える
0

あなたは間違いなく彼ら自身のスレッドで遅いタスクをスピンオフしたいです。AsyncTaskただし、OSのバージョンやご使用の設定によっては、一度に複数実行できない場合がありますのでご注意くださいAsyncTask。ここで私の他の答えとコメントを参照してください

于 2013-03-25T14:48:45.227 に答える
0

リストビューにデータを入力するには、ローダーを使用することをお勧めします。

ListActivityを実装させることができますLoaderManager.LoaderCallbacks<E>

onLoaderCreate、onLoaderFinish、onLoaderResetの3つのオーバーライドメソッドを取得します。

onLoaderCreateでは、ローダーにロードするオブジェクトを指定します。カーソルの場合は、cursorLoaderオブジェクトを作成できます。これにより、ロードが終了するとCursorオブジェクトが返されます(onLoaderFinish)。次に、カーソルを使用して、listViewのアダプターにデータを入力できます。

ダウンロード用のAsynも。IntentServiceを実装できます。次の方法で実行できます。

Intent intent = new Intent(mContext, IntentService.class);
startService(intent);

ブロードケースReceiverを使用すると、このバックグラウンドサービスからコールバックを取得できます。

于 2013-03-25T14:58:02.147 に答える