我正在尝试在doInBackground
的{{1}}方法中发生任何异常时显示对话框。我知道在上一个任务运行时我无法显示对话框。所以为此,我试图像这样取消(完成)AsyncTask
,
AsyncTask
我创建了一个try {
response= HttpService.doServerRequest(params);
} catch(Exception e){
task.cancel(true); //Cancelling AsyncTask
CustomException.onException(CurrentActivityName.this);
}
类来处理所有异常并显示一个对话框,告诉我发生了一些错误。我知道这里已经提到了这类问题,但我没有得到任何解决方案,这就是我要问的原因。
有没有办法完成之前的所有活动或完成CustomException
?
请帮忙。
先谢谢。
答案 0 :(得分:0)
从内部停止AsyncTask
非常简单:
HTTPResponse response = null;
try {
response = HttpService.doServerRequest(params);
} catch(Exception e){
}
if (response == null) return null;
您只需返回null或任何其他可用于在onPostExecute()
中告知任务是否成功的对象。
答案 1 :(得分:0)
1.完成之前的所有活动 你只需要调用finish方法!或者将活动设置为单身模式(实际上,我不清楚你的意思)
2.如果你想要完成AsyncTask。 你应该注意到不同Android版本中的AsyncTask具有不同的功能
低于4.0.x AsyncTask task.cancel方法无法停止AsyncTask运行,它只是设置一个标志为ture,而且没有,你应该得到标志值,并决定做什么,例如:
task.cancel(true);
if(task.iscancel()){
CustomException.onException(CurrentActivityName.this)
// or other stuff ,what you want !
}
4.0.x以上它将完全正常工作!如果你调用task.cancel(true);任务将停止运行