【发布时间】:2013-03-06 14:21:24
【问题描述】:
我有一个从网络获取信息的 AsyncTask。有时连接失败,AsyncTask 进程对话框一直在运行。
在 doInBackground 中,我最后检查了我捕获的信息是否为空,如果是这种情况,它应该显示为正按钮/负按钮,但这没有发生。对话框正在运行。
如何检查 AsyncTask 是否花费了太长时间(可能是 5 秒)并关闭对话框?
代码 sn-p (doInBackground):
//orders is my ArrayList<Order> object, from my own Order class.
if(orders==null) {
pdia.dismiss();
AlertDialog.Builder alt_bld = new AlertDialog.Builder(ctx);
alt_bld.setMessage("Try agin?")
.setCancelable(false)
.setPositiveButton("Try again", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
button_refresh.setVisibility(View.GONE);
new ListTask().execute(null, null , null);
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert = alt_bld.create();
alert.setTitle("Connection failed!");
alert.show();
}
else {
return orders;
}
提前致谢,如果您需要更多信息,请告诉我!
【问题讨论】:
-
如果成功即订单!=null,您在哪里关闭对话框?
-
在当前代码之上,因为当我在那里调用 publishProgress() 时我将其关闭。
标签: android