0

onCreate中に呼び出される長時間実行メソッドがあります。このメソッドは、テキストビューにデータを入力してUIと対話し、おそらく70個のラベルを更新します(デバイスによっては約3〜20秒)。

このメソッドの実行時に進行状況ダイアログを表示したいと思います。

理想的には、アクティビティが表示されて進行状況が表示されたら、UIスレッドでメソッドを起動したいのですが、これはできません。メソッドが終了するまでアクティビティはペイントされません。

アクティビティが表示された後に発生したイベントを見つけたいと思っていたので、下のイベントを見つけましたが、メソッドが終了するまで画面が真っ暗になります。

@Override public void onPostCreate(Bundle savedInstanceState)

私は通常WP7開発者であり、.NETでは、UIが表示された後に起動されるonLoadCompleteのイベントハンドラーを追加しますが、ユーザーがUIを操作する前に、Android JAVAでこれを行うにはどうすればよいですか?

ありがとう

4

1 に答える 1

0

View に ProgressBar を配置します。

次に、onCreate() または onResume() メソッドでこれを行います。

new Thread() {
    public void run() {
        yourLargeMethod();
    }
}.start();

これで、メソッド内でこれを実行して、progressBar を更新できます

public void yourLargeMethod() {
// doSomething
...

runOnUiThread(new Runnable() {
        public void run() {
            // update the progress from the thread
            progressBar.setProgress(x); // x is your progress, 0 <= x <= progressBar.getMax()
        }
    });
}
于 2011-08-01T10:49:20.940 に答える