Android 使用 AsyncTask 异步更新UI界面 - sbw Blog

Android 使用 AsyncTask 异步更新UI界面

来源: 石博文博客 | 浏览: 6017 | 评论: 0 发表时间: 2013-09-05

在android4.0以后的版本中,为了使得主界面流畅,所以设置了不允许在主线程中访问网络,为了安全,又不允许在其它线程中访问控件,这样就造成了ImageView等需要使用网络的控件更新时的问题,本文以使用AsyncTask的方式实现了异步更新UI界面.



相关文章:Android中使用Handler+Runnable异步更新UI界面
AsyncTask介绍

AsyncTask是在Android SDK 1.5之后推出的一个方便编写后台线程与UI线程交互的辅助类。AsyncTask的内部实现是一个线程池,每个后台任务会提交到线程池中的线程执行,然后使用Thread+Handler的方式调用回调函数。


AsyncTask中最重要的两个方法就是doInBackgroundonPostExecute,doInBackground为程序在后台执行的操作,一但执行完毕,就立即调用onPostExecute,而onPostExecute是在UI线程中执行的,就可以更新UI界面了。其中,doInBackground的返回值将作为参数传递给onPostExecute。


例子

下面是一个获取网络图片显示在ImageView上的例子。


MainActivity.java
activity_main.xml
效果
Android 使用 AsyncTask 异步更新UI界面

其中,代码的51~66行就是在后台异步的加载图片的。而72~77行则是在UI线程中执行,更新界面。



没有人评论过此文,还不快抢个沙发
  • 昵称: *
  • 邮箱:
  • 网址:
  • 记住我的信息
  • Color
  • Red
  • Blue
  • Code
  • bash
  • cpp
  • css
  • java
  • js
  • perl
  • php
  • python
  • ruby
  • sql
  • xml