我在我的应用程序中使用AsyncTask,但是当它启动时,就像它永远不会结束。当我在调试doInBackground
后,应用程序冻结并卡在ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker)
中。AsyncTask停止应用程序
这里是我的代码
class FetchSymbolInfo extends AsyncTask<String, Void, Document> {
private Exception exception = null;
@Override
protected Document doInBackground(String... params)
{
try
{
Document doc = null;
//doc = Jsoup.connect(params[0]).get();//application freezes even if I remove this line
return doc;
}
catch (Exception e)
{
this.exception = e;
return null;
}
}
@Override
protected void onPostExecute(Document result)
{
if(exception != null)
{
AlertDialog alertDialog;
alertDialog = new AlertDialog.Builder(null).create();//////////
alertDialog.setTitle("Error");
alertDialog.setMessage("Could not fetch from internetd\nPlease check your inernet connection and symbol name.");
alertDialog.show();
return;
}
Elements valueElement = result.select("div#qwidget_lastsale");
String valueString = valueElement.toString();
//getting number from string
}
@Override
protected void onPreExecute() {
}
@Override
protected void onCancelled() {
super.onCancelled();
}
@Override
protected void onCancelled(Document result) {
super.onCancelled(result);
}
@Override
protected void onProgressUpdate(Void... values) {
super.onProgressUpdate(values);
}
结构,我想这样的
String url = "url"; //writing an url
FetchSymbolInfo fetch = new FetchSymbolInfo();
fetch.execute(url);
任何想法执行呢?先谢谢你!
这是你的实际代码,还是只是一个骷髅?我在这里没有看到任何应该导致它挂起的东西。它只是向'onPostExecute'发送一个'null'并停止。 – Geobits
这只是一个骷髅,但我正在尝试我的代码与'doInBackground'函数具有相同的主体,并且它再次冻结 – nabroyan
显示代码为'@Override protected void onPostExecute(Document result) { if(例外!= null) { //打印错误 } //做一些东西 }' – wtsang02