-
只有主线程才能更新UI。但是Android是个多线程的操作系统。查看全部
-
访问网络必须 String url=params[0]; Bitmap bitmap=null; URLConnection connection; InputStream is;查看全部
-
doInBackground中不能更新UI查看全部
-
cancel只是标记了状态,可以在doInbackground中检测状态查看全部
-
模拟进度更新 for(int i=0;i<100;i++){ publishProgress(i); try{ Thread.sleep(300); } catch(InterruptedException e){ e.printStackTrace(); } } onProgressUpdate(Integer...values){ super.onProgressUpdate(calues); //获取进度更新值 mProgressBar.setProgress(values[0]); } 在AsyncTask的doInBackground()方法中调用publishProgress()方法可以将我们处理任务的进度反馈处理, 我们这个时候就是用AsyncTask的onProgressUpdate()方法来承接我们传出来的进度,注意,由于在AsyncTask中, 只有doInBackground()方法是工作在子线程中的,所以我们可以放心地在onProgressUpdate()方法中更新UI。 八: AsyncTask默认情况下会等待前一个线程执行完毕后再执行下一个线程,要取消该机制, 可以让AsyncTask和Activity的生命周期保持一致 protected void onPause(){ super.onPause(); if(mTask != null && mTask.getStatus() == AsyncTask.Status.RUNNING){ //只是发送了一个取消请求,将AsyncTask标记为cancel状态,但未真正取消线程的执行 //实际上JAVA语音没办法粗暴地直接停止一个正在运行的线程 mTask.cancel(true); } } 所以需要在doInBackground方法和onProgressUpdate方法中增加isCancelled()方法进行判断,标记为cancel的, 则跳出循环,尽快结束当前线程的剩余操作,开始下一个线程 九: AsyncTask的注意事项 还有一个: doInBackground()方法运行在非主线程,其他三个方法运行在主线程,所以可以在doInBackground做异步操作,在其他三个方法中更新UI。查看全部
-
Async Task子类的回调方法。 doInBackground onPreExecute onPostExecute onProgressUpdate [ 查看全文 ]查看全部
-
doInBackground(); 开始真正的异步操作查看全部
-
整个访问网络的操作查看全部
-
访问网络所必需的一些参数查看全部
-
try里面的代码:将url对应的图像,解析成bitmap查看全部
-
class MyAsycTask extends AsyncTask <url类型,进度值类型,返回值类型>查看全部
-
visibility 能见度清晰度 contentView 内容界面查看全部
-
。。。。。。查看全部
-
cancel方法知识将对应的ASYNCTACK标记为cancel状态,并不是真正的取消线程的执行。查看全部
-
取消异步查看全部
举报
0/150
提交
取消