【发布时间】:2012-10-11 22:01:20
【问题描述】:
我的程序中有一个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" 不会。
为什么会这样?
【问题讨论】:
-
您是否在“onPostExecute”中关闭对话框?
-
LogCat 上没有可以附加到您的问题的内容?也许这可能是 OutOfMemory 的问题,因为您运行了很多次......如果没有更多信息,就不可能为您提供帮助。 []s 网络
-
您在 PreExecute 中执行的其他操作是否会停止?连接到服务,或加载一些东西?
-
@NetoMarin 不,除了我在 Log.d() 中写的内容之外,logcat 不显示任何内容
-
@Alexander.S 不,加载对话框是我在 onPreExecute 中唯一要做的事情
标签: android multithreading asynchronous android-asynctask