android:alert对话框不等待输入

时间:2011-08-08 13:56:04

标签: android alertdialog wait

我有一个Android应用程序扫描SD卡并播放位于SD卡上的文件。但是,在我可以继续处理之前,我想首先检查SD卡是否在插槽中。但是,警报对话框不会等待输入并继续处理导致错误的背景,因为没有SD卡并且后台处理尝试访问该SD卡。我想等到我完成警告对话框。这有什么办法?以下是警报对话框的代码。我只是希望程序等到用户选择选项..

String state = Environment.getExternalStorageState();
    if (state.equalsIgnoreCase("mounted"))
    {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setMessage("The SD Card has been removed from your device. Please re-insert the SD card and try again")
       .setCancelable(false)
       .setPositiveButton("Retry", new DialogInterface.OnClickListener() {
           @Override
           public void onClick(DialogInterface dialog, int id) 

           {

              onRecreate();

           }
       })
       .setNegativeButton("Exit", new DialogInterface.OnClickListener() {
           public void onClick(DialogInterface dialog, int id) 
           {
               dialog.cancel();
             //  onDestroy();
               finish(); 
           }
       })

       .setTitle("No SD-card Found")
       .setIcon(R.drawable.alert_dialog_icon_m);
        AlertDialog alert = builder.create();
        alert.show();   

    return 0;
    }//IF condition closes   
    else
    return 1;

3 个答案:

答案 0 :(得分:3)

在用户按下对话框的其中一个按钮之前,不要做任何事情。如果没有安装SD卡,你可以做很多事情,只需要一个'请挂载SD卡继续'和一个'OK'按钮finish() - 活动。

答案 1 :(得分:0)

我尽早回答你的问题,我不明白为什么你加倍了,因为我觉得我的回答很清楚。您的SD卡检查必须以阻止方式进行,但在获得有关SD卡存在的明确信息之前,您的应用程序将无法继续运行。看起来你正在尝试在UI线程中检查SD卡时在单独的线程中做某事 - 这是完全错误的!检查SD卡,确保它存在,然后执行任何操作。我希望我现在很清楚,如果你仍然遗失任何东西 - 一定要问你的问题。最好的问候。

答案 2 :(得分:0)

您可以尝试检查外部存储文件夹是否存在,作为内存检查块。

//Check folder ready 
File dir = Environment.getExternalStorageDirectory();
while(!dir.exists()){dir = Environment.getExternalStorageDirectory();}