2

私がやりたいのは、作業の進捗状況とバックグラウンドで実行された計算(「ログイン」、「ドキュメントの取得」、「ドキュメントの分析」など)に関する情報をユーザーに提供することです。

何が起こるかというと、アートのものだけが表示され、すべての作業が完了した後でのみです。私は何を間違っていますか、そしてこれを実装する通常の方法は何ですか?

以下は、問題を説明するサンプルコードです。ループが完了する前に、トーストもProgressDialogも表示されません。

ProgressDialog.show(this, "Working", "Performing calculation");

CharSequence text = "Performing calculation"; 
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(this, text, duration); 
toast.show();

for(int i = 0; i < 5000; i++) {
     Log.d("Debug", Integer.toString(i)); 
}

正しい方向のポイントはありがたいです。

4

2 に答える 2

2

バックグラウンドプロセスがあり、進行状況についてユーザーを更新する場合に説明したシナリオは、やのようなメソッドがある場合に対処する必要がありAsyncTaskます。doInBackground()onProgressUpdate()

于 2012-06-17T15:01:57.923 に答える
1

バックグラウンド操作を実行する場合はAsyncTask、または別の操作を使用することを検討する必要Threadがあります。そうしないと、エンドユーザーにとって醜いタスクを実行するUIをブロックします。このチュートリアルを見てください:

http://www.vogella.com/articles/AndroidPerformance/article.html

于 2012-06-17T15:00:57.450 に答える