转载请注明 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)通常指的是UI元素的背景颜色或图像。这篇内容主要涉及的是Android系统内置的颜色资源,这对于UI设计者和开发者来说是非常有用的参考。以下是一些关键知识点: 1. **颜色资源**:...
### SAP Background Job 新增 Schedule 定时任务 #### 背景与意义 在企业级应用环境中,SAP系统作为核心业务平台承担着极其重要的角色。为了确保业务流程的高效运行,很多后台处理任务(Background Jobs)需要按照...
本项目“DemoList-can-change-backgroud-color.rar_DemoList”专注于展示如何实现CListCtrl控件的背景颜色动态改变功能,对于初学者来说是一个很好的学习案例。 首先,我们要理解CListCtrl控件的基本用法。它是CWnd...
Wren GA利用种群优化策略来学习和更新背景模型。每个像素被看作是种群中的一个个体,通过模拟自然选择过程,适应度较高的像素(更接近背景)被保留下来,形成新的背景模型。这种方法能够较好地适应复杂的背景变化,...
替换背景图片:将目录中名为backgroud.jpg的图片文件替换为想要的背景图片即可 人员名单:存放于list.txt文本文件中,一行一人名 运行环境:电脑要装Framework4.5及以上版本 软件可配置:可通过修改config.ini文件中...
介绍了LTE的业界现状,对LTE的系统架构做了一定介绍,同时站在移动接入网对LTE对了初步介绍
替换背景图片:将目录中名为backgroud.jpg的图片文件替换为想要的背景图片即可 人员名单:存放于list.txt文本文件中,一行一人名 运行环境:电脑要装Framework4.0及以上版本 软件可配置:可通过修改config.ini文件中...
随着数字时代的不断发展,人们对于个性化的需求日益增长,电脑桌面背景作为日常使用中不可忽视的一部分,也越来越受到重视。"John's background switcher"软件应运而生,旨在为用户提供一个自动化、个性化的桌面背景...
砷 React.js的后台组件 演示与范例 现场演示: 要在本地构建示例,请运行: npm install gulp dev 然后在浏览器中打开 。 安装 使用arsenic的最简单方法是从NPM安装它,并将其包含在您自己的React构建过程中...
《Windows7登录背景修改工具——实现个性化电脑桌面》 在数字化时代,个人计算机早已不再仅仅...通过合理利用这款工具,我们可以更好地享受科技带来的便利,同时展现自我风格,让每一次开机都成为一次美好的视觉体验。
我们可以利用这个层来作为按钮的背景,而不是使用默认的纯色填充。 2. **添加子layer**: UIButton是CALayer的子类,因此我们可以向其添加子layer。通过调用`addSublayer`方法,我们可以将CAGradientLayer添加到...
之前没有注意过div的background-image这个属性,只是设置它的url,今天遇到一个问题特此做一下记录。 代码如下: ”img_2″ xss=removed xss=removed></div> 在js中想获取image属性 代码如下: document....
#### 一、项目背景及目标 本项目主要针对的是C#环境下图片高质量合成的应用需求。通过一系列的操作(包括下载网络图片、按比例缩放图片以及将两幅不同尺寸的图片进行合成),实现高质量图片的合成功能。 #### 二、...
作者:王梵,来自原文地址 先来看一段样式,在wxss中 page{ background-color: cadetblue; background-image: url(../../../image/weixin_logo.png); background-repeat:repeat-x; background-position-y: top;...
每个子宏(如图3所示)都有特定的功能,它们被BACKGROUD宏依次执行,形成复杂的动画效果。\n\n子宏1、2、3、4是BACKGROUD宏的组成部分,各自执行特定的逻辑。例如,可能有一个子宏负责红色圆的动画状态切换,另一...
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,...
通过这种方式,我们可以自由地设计SeekBar的外观,使其更好地融入到应用程序的UI设计中。在这个例子中,我们使用了两张图片作为背景和进度条,使得SeekBar更加个性化和美观。在实际开发中,还可以根据需求进一步定制...
提供了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 ...