2011-07-10 5 views
0

私のアプリケーションはメインアクティビティ "A"とセカンダリアクティビティ "B"(ボタンクリック時に呼び出されます)を持っています。 アクティビティBが開始される直前に、アクティビティAから非同期タスクを実行して、リモートWebサービスからXMLデータを取得します。 xmlデータをアクティビティBに渡すにはどうすればよいですか?私は意思が開始されたときに、です。xmlDataが空で、以来Androidでは、メインアクティビティから呼び出された非同期タスクのデータをセカンダリアクティビティに渡す方法は?

intent.putExtra("xmlData", xmlData); 

のようなものを使用し、まだ...

それとも、私が間違ったアプローチを使用していませんか?私はアクティビティBでリモートデータを待っている時間を節約できると思うので、Bの代わりにアクティビティAから非同期タスクを実行することにしました...

答えて

2

URLが同じ場合は、idなどの一意のデータをAからintent.putExtra()を経由してアクティビティBに送信し、AsyncTaskを使用してデータを取得するときは、Bアクティビティを作成します。 onPreExecute内のprogressDialogも適切な場所にある可能性があります。

次に、同様のタスクがある場合はアクティビティBを再利用できます。取得し、解析し、提示する。

0

onPostExecute()内のstartActivityでインテントを作成し、あなたのAsyncTaskが完了した後。

また、xmlDataは文字列ですか?そうであれば、Parcelableを実装する必要があります。さて、あなたの識別子には注意が必要です。 putExtraに渡す識別子の誤字や誤った大文字小文字は、見つからない可能性があります。

+0

私はAsyncTaskが完了するのを待つことができないので、(ユーザーに何かが見えるようにするために)即座に起動する必要があります。 – MarcoS

関連する問題