作業の実行後にダイアログウィンドウを表示し、作業が終了するまで進行状況ダイアログを表示したいので、次のコードでスレッドを使用しようとします。
ProgressDialog dialog=new ProgressDialog(SampActivity.this);
dialog.setMessage("Please wait..");
dialog.setProgress(100);
dialog.setMax(5000);
dialog.show();
Thread progressing = new Thread()
{
@Override
public void run()
{
try
{
Thread.sleep(5000);
Looper.prepare();
AlertDialog.Builder
alertDialogBuilder = new AlertDialog.Builder(SampActivity.this);
alertDialogBuilder.setMessage("finished");
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
}
catch (Exception e)
{
e.printStackTrace();
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(SampActivity.this);
alertDialogBuilder.setMessage("Unable to stop SAP.The connection is down.Please retry after sometime.");
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
}
finally
{
dialog.dismiss();
}
runOnUiThread(new Runnable(){
@Override
public void run() {
if(dialog.isShowing())
dialog.dismiss();
}
});
}
};
progressing.setPriority(Thread.MAX_PRIORITY );
progressing.start();
このプログラムを実行した後、プログラムがハングします。コードの何が問題なのかわかりません。それを理解するのを手伝ってください。前もって感謝します。