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
}
});