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

而不是alertDialog.dismiss();尝试使用dialog.dismiss();

此外,“大进程”最好不要在 UI 线程上运行,因为它们会阻塞 UI。

AsyncTask 示例文档:http: //developer.android.com/reference/android/os/AsyncTask.html

于 2013-02-20T08:42:00.223 回答
2

您的“大进程”正在 UI 线程上运行,这非常糟糕。使用AsyncTask例如。同时显示进度视图。

于 2013-02-20T08:44:49.827 回答