Android 对话框未通过AsyncTask显示

Android 对话框未通过AsyncTask显示,android,android-asynctask,Android,Android Asynctask,我有一个自定义进度对话框,除了代码中的此处之外,它似乎在任何地方都能工作: 我的登录活动(相关代码片段): 返回对话框时实用程序类中的静态代码(相关代码段): 我看不到任何错误、异常,并且使用相同的方法在其他地方显示对话框。有时,我看到它的一小部分秒,但任务尚未完成 任何建议 谢谢警报对话框是前台的东西。您应该在UI线程中显示对话框。因此,如果要在异步任务中显示对话框,应使用runOnUiThread: runOnUiThread(new Runnable() { @Override

我有一个自定义进度对话框,除了代码中的此处之外,它似乎在任何地方都能工作:

我的登录活动(相关代码片段):

返回对话框时实用程序类中的静态代码(相关代码段):

我看不到任何错误、异常,并且使用相同的方法在其他地方显示对话框。有时,我看到它的一小部分秒,但任务尚未完成

任何建议


谢谢

警报对话框是前台的东西。您应该在UI线程中显示对话框。因此,如果要在异步任务中显示对话框,应使用
runOnUiThread

runOnUiThread(new Runnable() {
    @Override
    public void run() {
        // Show your dialog here
    }
});
文件:


您错过的任何机会
show()方法,如
pd.show()
login()
方法本身似乎是异步的,因为它接受回调参数。摆脱
AsyncTask
,在调用
login()
之前显示对话框,并在回调方法中取消它。
public static Dialog getProgressDialog(Context c, boolean isCancelable) {

    Dialog pd = new Dialog(c,c.getApplicationInfo().theme);
    pd.setCanceledOnTouchOutside(isCancelable);
    pd.requestWindowFeature (Window.FEATURE_NO_TITLE);
    pd.setContentView (R.layout.progress_dialog);
    pd.getWindow().setBackgroundDrawable(new ColorDrawable(Color.argb(150,0,0,0)));

    return pd;
}
runOnUiThread(new Runnable() {
    @Override
    public void run() {
        // Show your dialog here
    }
});