我在doInBackround中有一个异步任务,在各种部分运行完之后,我会做各种事情
onProgressUpdate("You proceeded a bit further 1/5");
多次工作正常,直到(仍然全部在doInBackground中)
HttpSessionToken = (HttpURLConnection)new URL("http://myserver").openConnection();
HttpSessionToken.setRequestMethod("GET");
HttpSessionToken.setRequestProperty("Accept", "application/json");
onProgressUpdate("Still everything is working fine");
int returnCode = HttpSessionToken.getResponseCode();
onProgressUpdate("This onProgressUpdate crashes!");
所以最后一个onProgressUpdate崩溃了,但是为什么会崩溃呢? getResponseCode()是否切换了我正在运行的线程?
最佳答案
您不必直接调用onProgressUpdate
,而必须调用publishProgress
并让AsynTask框架处理要在UI线程上回调的onProgressUpdate
。