您的位置:首页 > 移动开发 > Android开发

Android之AsyncTask的使用(一)之简单使用

2016-07-07 16:15 483 查看
声明: 本人菜鸟一枚, 本博客是本人自学的内容, 适用于初学者, 不喜勿喷, 谢谢大家

简单介绍

简单介绍

我们通过一个例子来说明该AsyncTask的使用方法:

首先, 我们需要实现一个类, 继承自AsyncTask,. 每个方法的的用法都在代码注释中有

需要注意的是, 模板参数: AsyncTask< Params, Progress, Result >, 这几个参数对应的是哪几个

/**
* 通过一个AsyncTask实现一个异步任务
* 模板参数: AsyncTask<Params, Progress, Result>
*/
private static class MyAsyncTask extends AsyncTask<String, Integer, String> {

private MainActivity activity;

public MyAsyncTask(MainActivity activity) {
this.activity = activity;
}

/**
* 执行任务支持触发的方法, 可以在该方法中做一些初始化工作
*/
@Override
protected void onPreExecute() {
super.onPreExecute();
activity.info.setText("开始执行.....");
}

/**
* 执行后台任务的方法
* 在子线程中执行, 不能在该方法中访问UI组件
*
* @param params
* @return
*/
@Override
protected String doInBackground(String... params) {

for (int i = 0; i < 10; i++) {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(i);
publishProgress(i);//更新进度

}

return "success";
}

/**
* 更新进度值
*
* @param values
*/
@Override
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
activity.info.setText("当前的进度为: " + values[0]);
}

/**
* doInBackground后执行的方法
*
* @param s
*/
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
activity.info.setText(s);
}
}


在Activity中调用方法

public void startMyAsyncTask(View view) {
new MyAsyncTask(this).execute();
}


效果图



座右铭: 少说话, 多做事
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android asynctask