android AsyncTask简单使用
2016-09-06 00:00
337 查看
/** * 第一个参数类型Boolean 为启动任务执行的输入参数,doInBackground方法传入 * 第二个参数类型Integer 为后台执行过程时参数输出,onProgressUpdate方法传入 * 第三个参数类型String 为最后输出返回的结果值,onPostExecute 方法传入 */ private class TestAsyncTask extends AsyncTask<Boolean,Integer,String>{ private Context mContext; public TestAsyncTask(Context context){ this.mContext = context; } private ProgressDialog dialog; //2、运行完onPreExecute后执行,长时间的操作放在此方法内, //此方法内不能操作UI //返回结果值 @Override protected String doInBackground(Boolean... strings) { for(int i=0;i<100;i++){ this.publishProgress(i);//传参给onProgressUpdate 进行UI等操作,例如执行进度更新 } return null; } //1、开始执行时运行 @Override protected void onPreExecute() { dialog = ProgressDialog.show(mContext,"提示","操作执行中...."); super.onPreExecute(); } //3、执行完毕 @Override protected void onPostExecute(String s) { if(dialog.isShowing()){ dialog.dismiss(); } super.onPostExecute(s); } //执行过程进行进度更新等操作 @Override protected void onProgressUpdate(Integer... values) { super.onProgressUpdate(values); } //调用取消时,要做的操作 @Override protected void onCancelled(String s) { super.onCancelled(s); } //调用取消时,要做的操作 @Override protected void onCancelled() { super.onCancelled(); } }
具体参数对应
方法调用:
AsyncTask必须在UI线程中实例化,通过excute()开始调用执行,调用也必须在UI线程中进行
每次实例化AsyncTask只能调用一次
新执行的Task时如果还存在其他tTask未执行完毕,新Task只会执行onPreExecute方法,等待前一个Task执行完毕才进行余下的方法。
如果想同时执行多个AsyncTask任务,调用时可通过new AsyncTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR)执行。
但是也是只能进行五个任务同时执行。
想同时执行更多个任务也可以新建ExecutorService来执行。
private static ExecutorService SINGLE_TASK_EXECUTOR; private static ExecutorService LIMITED_TASK_EXECUTOR; private static ExecutorService FULL_TASK_EXECUTOR; static { // SINGLE_TASK_EXECUTOR = (ExecutorService) Executors.newSingleThreadExecutor(); //使用自定义的CorePoolSize为7 LIMITED_TASK_EXECUTOR = (ExecutorService) Executors.newFixedThreadPool(7); //使用未设限制的Executor FULL_TASK_EXECUTOR = (ExecutorService) Executors.newCachedThreadPool(); }; //执行 new TestAsyncTask().executeOnExecutor(LIMITED_TASK_EXECUTOR);
相关文章推荐
- Android中AsyncTask的简单使用
- Android-AsyncTask简单介绍和使用
- Android 中的AsyncTask的简单使用心得
- 详解Android中AsyncTask的使用(简单易懂)
- Android之AsyncTask的使用(一)之简单使用
- Android中使用AsyncTask实现简单的异步处理
- Android AsyncTask 的简单使用
- Android AsyncTask+Soap 的简单使用
- android 中使用AsyncTask实现简单的异步编程
- android 中使用AsyncTask实现简单的异步编程
- 【Android】使用AsyncTask来处理一些简单的需要后台处理的动作
- Android:Asynctask简单使用
- APIDemo学习笔记——Android上几种简单的Animation使用方法(三)——3D Transition
- android google map 自定义地图的图层 简单使用(二)
- Android Google Map的简单使用(一)
- 详解Android中AsyncTask的使用
- Android 之 下拉框(Spinner)的简单使用
- Android AsyncTask的使用详解
- 【Android游戏开发二十一】Android os设备谎言分辨率的解决方案!以及简单阐述游戏引擎如何使用!
- Android笔记: AsyncTask 的使用