3

リモートサーバーから情報を取得してTableLayoutに表示するアクティビティがあります。サーバーから情報を取得する関数には独自のタイムアウトがあり、タイムアウトを超えると例外がスローされます。

ここで、アクティビティが読み込まれたときに、関数を起動し、関数の動作中にprogressDialogを表示し、関数の動作が完了した場合、またはタイムアウト例外がスローされた場合は非表示にします。

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

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

機能にはスレッドがアクセスできない多くの変数が必要なため、スレッドの使用を避けようとしています...

必要な動作をどのように実装できますか?

ありがとう。

4

2 に答える 2

6

ProgressDialogを制限してAsyncTaskを使用します。

http://it-projects.spb.ru/?p=150&lang=en

于 2011-01-10T12:45:31.147 に答える
3
  • 実装するクラスを作成しRunnable、そこにすべてのロードロジックを配置します。終了したら、アクティビティで関数を呼び出します(たとえばonFinished(params...)
  • UIを作成しHandler、ハンドラーを取得してUIを更新しますonFinished(params...)
  • スレッドを作成し、onCreateそこから開始してRunnableを呼び出します。
于 2011-01-10T12:46:48.310 に答える