2012-01-05 15 views
0

にあるときに回転を停止し、私はProgressDialog円は集中的な計算が、私はProgressDialogについてのアドバイスを必要とする背景

  pd = ProgressDialog.show(
        Dashboard.this, 
        "LOADING...", 
        "PLEASE WAIT", true, false); 

のようなダイアログを表示し、それを示していますが、それ背景に、円のような(スピンを停止し、集中計算のときブロックされます)。私はonClickボタンの上でこのコードを実行しています。このブロッキングを回避するために何を変更する必要がありますか、それは不可能ですか?

+0

何RUダイアログが実行されているときに実行しますか? –

+0

AsyncTaskを使用すると、集中的な計算を行うことができます。 –

+0

@Damir同じ問題を抱えていますが、解決策は見つかりましたか?私の場合、ダイアログは完全に機能しますが、別のメッセージで同じダイアログを2回使用すると、サークルは回転を停止しますが、アプリやアクティビティはブロック/ハングしません。 –

答えて

1

AsyncTaskProgressDialogを使用する方法例えば別のSOの質問を参照UIスレッド

をブロックしないように、別のスレッドにあなたの集中的な計算を移動する必要があります進行状況ダイアログは回転しませんが、実際には、集中的な計算がメイン/ UIスレッドをブロックしていることを意味します。

Androidアプリは、単一のメイン(UI)スレッド上で実行されるため

また、あなたがすべき、... UIスレッドでしゃっくりを引き起こすことなく

painless threading in android

それはバックグラウンドで実行されますのハングアップを取得UIスレッドasynctaskは、基本的にはAndroidのシステムが提供するインテリジェントなワーカースレッドで

に重い作業を行うことを避ける...それはあなたが簡単にあなたが

を何をしたいのかを決めることができ、前記ヘルパーメソッドが含まれています

はdoInBackgound()で集中的なタスクを実行します。

進捗ダイアログがonPreExecute()で作成されなければならないとonPostExecute()に却下ここ

はいくつかのチュートリアルです:

easy to understand asynctask

関連する問題