2011-06-28 7 views
0

これを考慮してください:onCreate()でActivityを取得しました。AsyncTaskを起動してコンテンツをロードします。私はthis sampleに続いた。今私の問題は:AsyncTaskを使用して、そのアクティビティでファイルをダウンロードしたいです。しかし、私は既存のAsyncTaskをさまざまなタスクを行う方法を知らない。 誰かが同じ問題を抱えていたら、私はあなたの助けに感謝します。Activity内でAsyncTaskを使用して複数のタスクを実行する

+0

実際の問題は何ですか?あなたが持っている非同期タスクの中にファイルダウンロードのコードを入れられないのはなぜですか? – Haphazard

+0

AsyncTaskの目的は何ですか?なぜ特定のサンプルを使ったのですか? – Marmoy

+0

アクティビティが初めて取得されたときに、リモートサーバからコンテンツをロードする必要があります。ユーザーがボタンをクリックすると、サーバーからファイルをロードする必要があります。私は別のスレッドでやる必要があり、画面の回転を処理できる必要があります。 –

答えて

1

まあ、私は成功しました何度も何度も呼び出すようにするには...あなたのクラスを最初にヌルとしてインスタンス化する必要があります(アクティビティint)。

MyAsyncTask asyncTask = null; 

してからください... catchブロックにそれを置く:

asyncTask = (MyAsyncTask) new MyAsyncTask().execute(params); 

について、あなたはinterrestedしている他の事は、あなたが実行したいdifferenc方法で...まあ、私が欲しかったです同じことをするために、私は時間を持っていませんでしたが、仕事から家に帰る途中でそれについて考えました。

私はAsyncTaskを拡張するクラスは、次のようになりますと思う:

class MyAsyncTask extends AsyncTask<Object, Object, Object> { } 

はあなたのAsyncTaskでいくつかの変数またはのArrayListを作成し、あなたがスイッチをしなければならないオーバーライドonPreExecute()メソッドで決定を行います、またはいくつかの場合。オーバーライドされたdoInBackground()で呼び出し/作業を行い、結果を取得し、オーバーライドされたonPostExecute()メソッドで処理します。

このラインが動作するかどうか、私はそれを実験する時間がなかったしましたので、私は、知りませんが、私は本当にそれについて考え、どのように... :)

しかし、私は願っています考えはで役立ちます少なくとも! :)

1

異なるdoInBackgroundメソッドを持つ2つの別々のAsyncTasksを実装するか、既存のものにファイルのダウンロードを追加する必要があります。

は(ドキュメントから)ことを覚えておいてください:(第二の実行が試行された場合、例外がスローされます)タスクは一度だけ実行することができ

関連する問題