我在网上搜索过,但我只找到用户想要在asynctask中显示对话框的情况,如下例所示:protected void onPreExecute() .
{
super.onPreExecute();
pDialog = new ProgressDialog(NumericoComercial.this);
pDialog.setMessage("Actualizando ...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
我想知道的是,如果可以在没有在onPreExecute()和onPostExecute()中显示任何对话框的情况下执行asynctask,就像通常那样 .
我使用asynctask和窗口泄漏错误的对话框遇到了一些问题 . 我尝试过的事情不是在Pre和Post Actions中添加任何对话框,如下例所示 .
class UpdateCandidatos extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
}
protected void onPostExecute(String file_url) {
}
}
可能是使用此方法的任何错误,例如活动结束时?
谢谢
2 回答
onPreExecute()
和onPostExecute()
不是扩展Aynctask
的必需方法,那么您在这些方法中编写的所有内容(Dialog,ProgressDialog等)对于您的类的正确工作是不必要的 .这是一个非常简化且完全分叉的
AsyncTask
,在后台显示没有对话框的"something" .注意:您必须根据应用的生命周期处理任务
我建议您在onPause()方法中取消异步任务 . 这样,如果您的活动关闭,异步任务将不会尝试发布任何数据,并且不会调用onPostExecute .
嗯,你不应该在onPostExecute()上有任何错误,你可以使用异步任务而不显示任何数据,它不是强制性的 . 你甚至不需要@override那个函数,只要把Void我声明(...扩展AsyncTask <...,...,Void>)