2

AsyncTask は主に、明確に定義された計算またはタスクを実行するためのソリューションとして提示されます。古典的な例は、URL を受け取った AsyncTask としてのダウンローダで、その進行状況を UI に更新し、完了すると終了します。実行中に AsyncTask に入力を追加/変更するための合理的な (あまりハックではない) 方法はありますか? おそらく、AsyncTask が処理しなければならないアイテムのキューを設定してから、メイン アプリケーションからそのキューを変更する...? たとえば、それは AsyncTask モデルを「壊す」でしょうか?

4

2 に答える 2

2

はい、アクティビティによって管理される同期コレクションから doInBackground() メソッドでオブジェクトを取得するだけで簡単に実行できます。

于 2012-12-01T07:23:21.600 に答える
2

はい、できます。AsyncTask は、UI スレッドへの通信メカニズムが既に組み込まれているスレッドです。ただし、この通信はAsyncTasktoからのみUIであり、必要に応じて逆方向ではありません。

また、Android での同時最大数はAsyncTask複数の API バージョンで 1 です。

UIからへのスレッド セーフな通信を実装するには、 またはクラスAsyncTaskを使用する必要があります。HandlerBlockingQueue

個人的には、私はそれをしません。またはThreadと一緒に a を直接使用します。HandlerBlockingQueue

よろしく。

于 2012-11-29T11:17:32.153 に答える