转载请注明http://xuantan.iteye.com/admin/blogs/1826350

在android工程中,若想异步执行一个任务,可以继承AsyncTask<Param, Progress, Result> 类,并实现其中的回调方法即可。

如今,利用androidannotations的@Backgroud及@UiThread注解我们可以更轻松的做到这一点。

修改前代码如下:

....        @Overridepublic void onStart() {super.onStart();new DownloadUsersTask().execute();}private class DownloadUsersTask extends AsyncTask<Void, Void, List<User>> {@Overrideprotected void onPreExecute() {showLoadingProgressDialog();}@Overrideprotected 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;}@Overrideprotected 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);}...

替换后代码如下:

...        @Overridepublic void onStart() {super.onStart();showLoadingProgressDialog();downloadUsersTask();}@Backgroundvoid downloadUsersTask() {ResponseEntity<User[]> responseEntity = restApiService.getUsersByStatus();List<User> users = Arrays.asList(responseEntity.getBody());testTismissProgressDialog(users);}@UiThreadvoid 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

更多相关文章

  1. Android中Toolbar的使用 AppCompatActivity必备
  2. Android(安卓)Studio 奇技淫巧
  3. Android(安卓)Custom View --- Continuous Slider(连续滑动器)
  4. 一个简单的Android程序的登录界面
  5. Android(安卓)ApiDemos示例解析(49):Content->Resources->Styled
  6. Android(安卓)Txt文本读写类源代码
  7. Android(安卓)Selector用法小记
  8. Android源码编译
  9. 模仿墨迹天气设置界面布局

随机推荐

  1. Android空白处隐藏软键盘方案
  2. Android集成银联支付,提示java.lang.Unsat
  3. android 零散笔记不定期更新 v16
  4. Android 之 CheckBox 详解
  5. JSONArray的使用
  6. Mono for Android (2)-- Android应用程序初
  7. android集成友盟推送,点击通知,先启动应用,
  8. Android之ListView中的分割线和行高
  9. Android 中文 API (28) —— CheckedTextVi
  10. Android 混淆提示 java.io.FileNotFoundE