转载请注明 http://xuantan.iteye.com/admin/blogs/1826350
在android工程中,若想异步执行一个任务,可以继承AsyncTask<Param, Progress, Result> 类,并实现其中的回调方法即可。
如今,利用androidannotations的@Backgroud及@UiThread注解我们可以更轻松的做到这一点。
修改前代码如下:
.... @Override public void onStart() { super.onStart(); new DownloadUsersTask().execute(); } private class DownloadUsersTask extends AsyncTask<Void, Void, List<User>> { @Override protected void onPreExecute() { showLoadingProgressDialog(); } @Override protected List<User> doInBackground(Void... params) { try{ ResponseEntity<User[]> responseEntity = restApiService.getUsersByStatus(); return Arrays.asList(responseEntity.getBody()); } catch (Exception e) { Log.e(TAG,e.getMessage(),e); } return null; } @Override protected void onPostExecute(List<User> result) { dismissProgressDialog(); refreshResult(result); } } private void refreshResult(List<User> users) { if(users == null) { return; } UserListAdapter adapter = new UserListAdapter(this,users); setListAdapter(adapter); } ...
替换后代码如下:
... @Override public void onStart() { super.onStart(); showLoadingProgressDialog(); downloadUsersTask(); } @Background void downloadUsersTask() { ResponseEntity<User[]> responseEntity = restApiService.getUsersByStatus(); List<User> users = Arrays.asList(responseEntity.getBody()); testTismissProgressDialog(users); } @UiThread void testTismissProgressDialog(List<User> users) { dismissProgressDialog(); refreshResult(users); } private void refreshResult(List<User> users) { if(users == null) { return; } UserListAdapter adapter = new UserListAdapter(this,users); setListAdapter(adapter); } ...
是不是清晰、简洁了很多~
相关参考:
https://github.com/excilys/androidannotations/wiki/WorkingWithThreads
相关推荐
android backgroud大全.
SAP BACKGROUD JOB 新增SCHEDULE
包含:ZivkovicAGMM,WrenGA,PratiMediodBGS,AdaptiveMedianBGS等不同算法
替换背景图片:将目录中名为backgroud.jpg的图片文件替换为想要的背景图片即可 人员名单:存放于list.txt文本文件中,一行一人名 运行环境:电脑要装Framework4.5及以上版本 软件可配置:可通过修改config.ini文件中...
介绍了LTE的业界现状,对LTE的系统架构做了一定介绍,同时站在移动接入网对LTE对了初步介绍
替换背景图片:将目录中名为backgroud.jpg的图片文件替换为想要的背景图片即可 人员名单:存放于list.txt文本文件中,一行一人名 运行环境:电脑要装Framework4.0及以上版本 软件可配置:可通过修改config.ini文件中...
英文版,定时更换桌面,可设置使用网络图片或本地图片
能够实现改变背景颜色的CListCtrl控件,适合初学者
自定义背景色渐变的 Button
砷 React.js的后台组件 演示与范例 现场演示: 要在本地构建示例,请运行: npm install gulp dev 然后在浏览器中打开 。 安装 使用arsenic的最简单方法是从NPM安装它,并将其包含在您自己的React构建过程中...
之前没有注意过div的background-image这个属性,只是设置它的url,今天遇到一个问题特此做一下记录。 代码如下: ”img_2″ xss=removed xss=removed></div> 在js中想获取image属性 代码如下: document....
可以转换Windows7的登陆界面背景图片,十分好用的Window个性化小工具
作者:王梵,来自原文地址 先来看一段样式,在wxss中 page{ background-color: cadetblue; background-image: url(../../../image/weixin_logo.png); background-repeat:repeat-x; background-position-y: top;...
download backgroud image of cn.bing.com website and set it as your current desktop backgroud usage: if you want run it just once,just excute run.bat if you want make it as a task of windows os,...
chrome插件开发-页面对象注入及本地通信 代码包含了应用页面内的js对象注入,js对象与backgroud.js的通信以及backgroud.js与本地程序的通信
提供了5种mode, 我觉得在只用其中的MAIN和BACKGROUD就可以了 1. ThreadMode: POSTING 事件处理和post在同一个线程中,如果是UI线程注意耗时操作。 2. ThreadMode: MAIN 事件处理将在Android的主线程(UI线程)中被调用...
launch_backgroud.xml里修改成自己的图片名称,src表示图片的名称不带扩展名,mipmap表示对应各种分辨率下的图片 launch_background.xml文件 <!-- --> 设置全屏图片 styles.xml 文件 false true ...
chrome插件开发-页面对象注入及本地通信 代码包含了应用页面内的js对象注入,js对象与backgroud.js的通信以及backgroud.js与本地程序的通信
循环和竞争+ @for和@each mixins和扩展+ @ define-mixin和@ define-extend 类+ body { backgroud-color: red; .container { color: blue; } }嵌套body { backgroud-color: red; .container { color: blue;
IT SERVICE CMM:backgroud,concept,structure,application