2011-01-10 10 views
3

私は、リモートサーバーから情報を取得し、それをTableLayoutに表示するアクティビティを持っています。 サーバーから情報を取得する関数には独自のタイムアウトがあり、タイムアウトが超過すると例外がスローされます。ActivityのonCreate()の長時間操作

アクティビティがロードされると、関数が呼び出され、関数の動作中にprogressDialogが表示され、関数が正常に終了した場合やタイムアウト例外がスローされた場合は隠されるようにします。

問題点:上記のすべての機能をonCreate()関数で行うコードを入れました。 onCreate()関数の実行が終了していないため、エミュレータ画面に何も表示されません...

また、コードをonStart()関数に入れようとしました...同じ不要な結果...

機能は、スレッドがそれらへのアクセスを持っていないことを多くの変数を必要とするので、私はどのように私が欲しかった動作を実装することができます...、スレッドの使用を避けるために

をしようとしています?

ありがとうございました。

答えて

3
  • Runnableを実装するクラスを作成し、そこにすべてのロードロジックを置きます。終了したら、活動に関数を呼び出し
  • onCreateにスレッドを作成onFinished(params...)
  • でUIを更新し、あなたのRunnableを呼び出すためにそこにそれを開始するためのハンドラをUI Handlerを作成し、取得する(onFinished(params...)を言うことができます)。
関連する問題