1

「はい」ボタンをクリックしたときにアラートを閉じようとしています。ボタンインターフェイスは、約10秒間プロセスを実行します。SaveRouteメソッドが終了したときにのみアラートが閉じられるため、ボタンをクリックしたときにアラートダイアログを閉じたいと思います。私のコード:

imageRouteDetSave.setOnClickListener(new OnClickListener() {
      public void onClick(View v) {

        //** Save the current route             
        new Thread(new Runnable() {
                public void run() {

                         MyActivity.this.runOnUiThread(new Runnable() {
                                public void run() {
                                    alertDialog = new AlertDialog.Builder(MyActivity.this).create();
                                    alertDialog.setTitle("Saving...");
                                    alertDialog.setMessage("......");
                                    alertDialog.setButton("Yes", new DialogInterface.OnClickListener() {
                                       public void onClick(DialogInterface dialog, int which) {


                                          alertDialog.dismiss(); //-- No close the dialog
                                          SaveRoute();//-- Big proccess

                                       }
                                    });
4

2 に答える 2

2

あなたの「大きなプロセス」はUIスレッドで実行されています。これは非常に悪いことです。AsyncTaskたとえば、を使用します。進行状況ビューも表示します。

于 2013-02-20T08:44:49.827 に答える
2

alertDialog.dismiss();使用してみる代わりにdialog.dismiss();

さらに、「大きなプロセス」は UI をブロックするため、UI スレッドで実行しない方がよいでしょう。

AsyncTask サンプル ドキュメント: http://developer.android.com/reference/android/os/AsyncTask.html

于 2013-02-20T08:42:00.223 に答える