AsyncTask使用
在自己项目中,每当有耗时操作就是创建新的线程, 几乎忘记Android 还有自带异步线程工具AsyncTask ,其中底层已经用线程池管理线程,不用我们考虑线程的管理问题, 实际把其写到基类中
public class BaseActivity extends AppCompatActivity{protected List<AsyncTask<Void, Void, Boolean>> myAsyncTasks = new ArrayList<AsyncTask<Void, Void, Boolean>>(); @Override protected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState); }/** * 添加异步任务到数组中 * * @param asyncTask */ public void putAsyncTask(AsyncTask<Void, Void, Boolean> asyncTask) {myAsyncTasks.add(asyncTask.execute()); }/** * 清除所有的异步任务 */ protected void clearAsyncTask() {Iterator<AsyncTask<Void, Void, Boolean>> iterator = myAsyncTasks .iterator(); while (iterator.hasNext()) {AsyncTask<Void, Void, Boolean> asyncTask = iterator.next(); if (asyncTask != null && !asyncTask.isCancelled()) {asyncTask.cancel(true); }}myAsyncTasks.clear(); }@Override protected void onDestroy() {clearAsyncTask(); super.onDestroy(); } }
当使用时调用
private void search() {putAsyncTask(new AsyncTask<Void, Void, Boolean>() {@Override protected Boolean doInBackground(Void... params) {try {// TODO: 耗时操作 } catch (Exception e){return false; }return true; }@Override protected void onPostExecute(Boolean aBoolean) {if(aBoolean){// TODO: 更新UI }else {Toast.makeText(MainActivity.this,"查询失败",Toast.LENGTH_LONG).show(); }super.onPostExecute(aBoolean); }}); }
AsyncTask使用相关推荐
- android asynctask源码分析,Android通过Handler与AsyncTask两种方式动态更新ListView(附源码)...
本文实例讲述了Android通过Handler与AsyncTask两种方式动态更新ListView的方法.分享给大家供大家参考,具体如下: 有时候我们需要修改已经生成的列表,添加或者修改数据,noti ...
- 【Android】AsyncTask异步类
一.关于AysncTask AsyncTask使得多线程编程更加简单,AsyncTask能在后台线程执行异步任务,并且在UI线程更新界面,而不再需要用户去操作Thread和Handler.AysncT ...
- Asynctask源码分析
首先我们使用AsyncTask时,一般是: new AsyncTask(...).execute() 复制代码 我们看new AsyncTask(),它走的是: public AsyncTask( ...
- Android 多线程-----AsyncTask详解
您可以通过点击 右下角 的按钮 来对文章内容作出评价, 也可以通过左下方的 关注按钮 来关注我的博客的最新动态. 如果文章内容对您有帮助, 不要忘记点击右下角的 推荐按钮 来支持一下哦 如果您对文章内 ...
- android一个简单的异步AsyncTask下载数示例,简单下载(07)
2019独角兽企业重金招聘Python工程师标准>>> public class MainActivity extends Activity {private ImageView i ...
- Android 消息异步处理之AsyncTask
Android提供了异步处理消息的方式大致有两种,第一种是handler+Thread,之前已经对于这种方式做过分析,第二种就是AsyncTask,这是Android1.5提供的一种轻量级的工具类,其 ...
- Android 学习笔记--android——AsyncTask在Android4.X的机制问题
AsyncTask在Android4.X的机制问题 AsyncTask在Android4.X机制是串行的...单一AsyncTask运行完才会运行下一个 AsyncTask在Android2.3机制是 ...
- AsyncTask进度条加载网站数据到ListView
2019独角兽企业重金招聘Python工程师标准>>> 代码介绍: 初学android,写了个一小demo.功能很简单,主要是用来学习, 知识要点: 1.android全局变量的使用 ...
- 源码篇——AsyncTask机制
AsyncTask new AsyncTask<String,String,String>(){// 运行在主线程中,做预备工作onPreExecute(){}// 运行在子线程中,做耗时 ...
- Android中 AsyncTask
Android AsyncTask 在程序处理中必然会遇上耗时的操作,如访问网络,下载数据,访问数据库等,如何存在耗时的操作 又不能影响界面显示交互. 在某些耗时可以控制的情况下,我们可以分批操作,对 ...
最新文章
- 一致性直线提取--Coherent Line Drawing
- Linux RAR 安装和使用
- 单臂路由实验-VTP
- DataSourceUtils(使用C3P0连接池的工具类)
- 一道很熟悉的前端面试题,你怎么答?
- 微星主板超频_内存超频能力依旧拔群!微星MEG Z490 ACE主板评测
- NUC1214 回文素数【回文+素数】
- [2019杭电多校第三场][hdu6606]Distribution of books(线段树dp)
- 选择Eclipse 的列编辑模式
- nema0183 java解析_java解析nmea0183协议
- 计算机视觉论文-2021-03-10
- python链家数据分析_利用Python分析北京链家二手房数据
- 使用PhantomJS网页截图
- git 将暂存区文件提交_git文件状态,暂存与提交
- 学生托管班_托管班一般多少钱一个月
- docker实践-oxidized网络设备自动备份部署
- Tensorflow C++使用ops::BatchMatMul实现特征批量乘法
- linux文件系统层级结构标准
- 无人机激光雷达的路径规划仿真
- python soap服务_Python SOAP服务器/客户端