-
将网络输入流解析成Bitmap对象。查看全部
-
AsyncTask三个传入参数的类型查看全部
-
从网络获取图片等耗时操作。查看全部
-
AsyncTask的方法的调用顺序。查看全部
-
获取进度,更新进度条。查看全部
-
AsyncTask的子类的重写方法。查看全部
-
如果要在子线程中更新UI,可以使用Activity提供的一个方法。查看全部
-
只有主线程才能更新UI。但是Android是个多线程的操作系统。查看全部
-
删掉那些属性的快捷键是什么啊?查看全部
-
AsyncTask中只有doInBackground方法运行在其他线程,其他方法都运行在主线程,所以只有在其他三个方法中才能进行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的,则跳出循环,尽快结束当前线程的剩余操作,开始下一个线程查看全部
-
模拟进度更新 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]); }查看全部
-
与UI线程通信 在onPreExecute()方法中 mProgressBar.setVisibility(View.VISIBLE);//显示进度条 在onPostExectute(Bitmap bitmap)方法中,参数是doInBackground()方法返回的参数 mProgressBar.setVisibility(View.GONE);//将进度条隐藏 mImageView.setImageBitmap(bitmap);//将图片设置为解析出来的网络图片 然后在onCreate方法中 new MyAsyncTask().execute(URL);//开启AsyncTask的异步线程操作,设置传递进去的参数查看全部
-
doInBackground方法传入的是一个可变长数组,在execute方法中可以传递不止一个参数,存入params数组中 String url = params[0];//本例中只传入一个地址 Bitmap bitmap = null; URLConnection connection;//定义网络连接对象 InputStream is;//用于获取数据的输入流 connection = new URL(url).openConnection();//获取网络连接对象,需要被try_catch is = connection.getInputStream();//获取输入流 BufferedInputStream bis = new BufferedInputStream(is); bitmap = BitmapFactory.decodeStream(bis);//将输入流解析成bitmap is.close();//关闭输入流 bis.close(); ruturn bitmap;//将bitmap作为返回值返回给后面调用的方法查看全部
-
网络操作作为不稳定的废时操作,从android 4.0开始就被严禁放入主线程中 通常采用在异步线程处理→下载图像 在UI线程→设置图像 ProgressBar XML属性 visibility="gone"可设置为默认状态下为隐藏查看全部
举报
0/150
提交
取消