我在点击“是”按钮时尝试关闭警报。按钮界面在10秒aprox期间执行一个过程。我想在单击按钮时关闭警告对话框,因为仅当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
}
});
答案 0 :(得分:2)
而不是alertDialog.dismiss();
尝试使用dialog.dismiss();
此外,“大流程”最好不要在UI线程上运行,因为它们会阻止UI。
AsyncTask示例doc:http://developer.android.com/reference/android/os/AsyncTask.html
答案 1 :(得分:2)
您的“大进程”正在UI线程上运行,这非常糟糕。例如,使用AsyncTask
。同时显示进度视图。