我的程序中有一个AsyncTask
,它在运行几次后似乎在onPreExecute()
之后停止。我的意思是,我可以使用该应用程序,并且所有内容都能运行大约10到20次,但随后会暂停。这是怎么回事:
private class MyTask extends AsyncTask<String, Void, Data> {
protected void onPreExecute() {
// show loading dialog
Log.d(TAG, "end onPreExecute");
}
protected Data doInBackground(String... params) {
Log.d(TAG, "start doInBackground");
// do stuff
}
protected void onPostExecute(Data myData) {
// do stuff
}
}
当它停止工作时,会发生什么情况,即加载对话框将永远保持加载状态,而
"end onPreExecute"
会打印,而"start doInBackground"
不会。为什么会这样呢?
最佳答案
很难说出问题出在哪里。由于您的异步任务似乎在前几次工作,所以可能是该API功能太"unstable" for your intention ...
一个简单的解决方案就是用其他Thread解决方案代替AsyncTask:
Here是该帖子由traditional Thread解决的问题。
Here是显示如何使用Handler的帖子。
希望有帮助!