如果onPostExecute无法从服务器加载数据,我想在Dialoag框中显示Reload按钮。那么如何在AsyncTask中重新启动或执行类似的操作呢?
答案 0 :(得分:3)
再次调用它:
new mAsyncTask.execute("");
在 onPostExecute 的某些if块中,未成功加载数据。
答案 1 :(得分:0)
将它放在Button的onClickListener中:
if(task.cancel(true)) {
YourTask task = new YourTask(this);
task.execute();
}
因此,在按钮单击时,您将尝试取消当前执行的任务并开始一个新任务。
答案 2 :(得分:0)
要重新启动AsyncTask,您需要创建asynctask的新实例并调用execute();
@Override
protected void onPostExecute(Response result) {
super.onPostExecute(result);
if (your_condition) {
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
alertDialogBuilder.setMessage("Some error has occured .! \nDo you want ro retry?");
alertDialogBuilder.setPositiveButton("yes",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
new YourAsyncTask().execute();
}
});
alertDialogBuilder.setNegativeButton("No",
new DialogInterface.OnClickListener() {
Override
public void onClick(DialogInterface dialog, int which) {
// Perform action.
}
});
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
}
}