本文主要是介绍Android之AsyncTask的使用(一)之简单使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
声明: 本人菜鸟一枚, 本博客是本人自学的内容, 适用于初学者, 不喜勿喷, 谢谢大家
- 简单介绍
简单介绍
我们通过一个例子来说明该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;}/*** 执行任务支持触发的方法, 可以在该方法中做一些初始化工作*/@Overrideprotected void onPreExecute() {super.onPreExecute();activity.info.setText("开始执行.....");}/*** 执行后台任务的方法* 在子线程中执行, 不能在该方法中访问UI组件** @param params* @return*/@Overrideprotected 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*/@Overrideprotected void onProgressUpdate(Integer... values) {super.onProgressUpdate(values);activity.info.setText("当前的进度为: " + values[0]);}/*** doInBackground后执行的方法** @param s*/@Overrideprotected void onPostExecute(String s) {super.onPostExecute(s);activity.info.setText(s);}}
在Activity中调用方法
public void startMyAsyncTask(View view) {new MyAsyncTask(this).execute();}
效果图
座右铭: 少说话, 多做事
这篇关于Android之AsyncTask的使用(一)之简单使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!