【发布时间】:2021-12-31 03:23:39
【问题描述】:
我目前有一个 android 应用程序,当单击 Activity 上的按钮时,它会运行 asynctask。当 asynctask 忙于处理其任务时,我希望 Activity 显示一个警报对话框(正在加载...),让我的用户知道应用程序正忙于处理请求,而不仅仅是冻结或崩溃。目前,我的代码是这样写的:
LoadingDialogue.java
public class LoadingDialogue {
private Activity activity;
private AlertDialog dialog;
public LoadingDialogue(Activity myActivity){
activity = myActivity;
}
public void startLoadingDialogue(){
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
LayoutInflater inflater = activity.getLayoutInflater();
builder.setView(inflater.inflate(R.layout.loading_dialogue,null));
builder.setCancelable(false);
dialog = builder.create();
dialog.show();
}
public void dismissDialog(){
dialog.dismiss();
}
这就是我在我的活动中实现它的方式:
CustomAsyncTask asyncTask = new CustomAsyncTask();
loadingDialogue.startLoadingDialogue();
String responseString = asynctask.execute().get()
loadingDialogue.dismissDialog();
但是,我的加载对话框没有显示!如果我只是在没有异步任务的情况下执行它,它就可以工作。
谢谢!
【问题讨论】:
-
不要在你的 asyctask 上使用 .get() 调用。它阻止了一切。在 inPostExecute 中处理结果。使用正常的进度条代替警报。
标签: android android-studio android-asynctask android-alertdialog