Android异步操作AsyncTask

来源:未知 责任编辑:责任编辑 发表时间:2014-05-20 18:32 点击:

前面一篇是Thread+Handler更新UI操作, Android有提供一个相对轻量级的AsyncTask,主要用于一些简单的逻辑操作更新UI.

public class ProAT extends AsyncTask<String, Integer, String>{
 /*
  * 第一个参数为doInBackground传入的参数,
  * 第二个参数为onProgressUpdate传入参数,由doInBackground内调用publishProgress(Interger)传值;
  * 第三个为doInBackground返回值和onPostExecute传入的参数。
  */
 @Override
 protected void onPreExecute() {
  //该方法将在执行实际的后台操作前被UI thread调用。可以在该方法中做一些准备工作,如在界面上转菊花提示
  System.out.println("onPreExecute--->Task start");
  super.onPreExecute();
 }
 
 @Override
 protected String doInBackground(String... params) {
  //将在onPreExecute 方法执行后马上执行,该方法运行在后台线程中。
  //这里将主要负责执行那些很耗时的后台计算工作。
  System.out.println("doInBackground---->");
  try {
   Thread.sleep(5000);
   //可以调用 publishProgress方法来更新实时的任务进度。该方法是抽象方法,子类必须实现。
   publishProgress(1);
  } catch (InterruptedException e) {
   // TODO: handle exception
   e.printStackTrace();
  }
  return "doInBackground";
 }
 
 @Override
 protected void onProgressUpdate(Integer... values) {
  System.out.println("更新进度"+values[0]);
  //在publishProgress方法被调用后,UI thread将调用这个方法从而在界面上展示任务的进展情况,例如通过一个进度条进行展示。
  super.onProgressUpdate(values);
 }
 
 @Override
 protected void onPostExecute(String result) {
  // 在doInBackground 执行完成后,onPostExecute 方法将被UI thread调用,后台的计算结果将通过该方法传递到UI thread
  //用于更新UI
  System.out.println("onPostExecute----->"+result);
  super.onPostExecute(result);
 }
 
 @Override
 protected void onCancelled() {
  //当用户取消操作时.
  super.onCancelled();
 }
}
 
主线程调用

public class AsyncTaskActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        ProAT pro = new ProAT();

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • Android 完全退出程序
  • 原创:Android应用开发-Andorid歌词秀,含源码
  • android 屏幕保护
  • Android手机软件汉化教程---第四课 dex文件汉化
  • 众多Android 开源项目推荐,给力工作给力学习
  • Android Audio代码分析4
  • Android得到已安装的应用程序信息!
  • Android开发者指南(29) —— USB Host and Accessory
  • Android成长的幕后推手:工程师鲁宾
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1