简单介绍

androidannotations在开发中的代码规范思考:(MVC思考)时间太紧,先贴代码:
Activity的代码:
package edu.njupt.zhb.main;

import org.androidannotations.annotations.AfterViews;
import org.androidannotations.annotations.Bean;
import org.androidannotations.annotations.EActivity; import android.app.Activity; /**
* @author Zheng Haibo
* @web http://www.mobctrl.net
*/
@EActivity(R.layout.main)
public class MainActivity extends Activity { @Bean
MainActions mainActions; @AfterViews
void afterViews() {
doSomething();
} private void doSomething() {
mainActions.doActionsInThread(20, new UiCallback() { @Override
public void onBackgroundEnd() {
// TODO Auto-generated method stub
// write the code
System.out.println("the background thread end...");
}
});
}
}

业务逻辑

MainActions
package edu.njupt.zhb.main;

import org.androidannotations.annotations.Background;
import org.androidannotations.annotations.EBean;
import org.androidannotations.annotations.RootContext;
import org.androidannotations.annotations.UiThread; import android.content.Context;
import android.widget.Toast;
/**
* @author Zheng Haibo
* @web http://www.mobctrl.net
*/
@EBean
public class MainActions { @RootContext
Context context; @Background
void doActionsInThread(int params, UiCallback uiCallback) {
// database,net,file,sp ...
int result = 0;
for (int i = 0; i < params; i++) {
result = result + i;
try {
Thread.sleep(200);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("test the thread is run in the background...");
}
runInUiThread(result, uiCallback);
} @UiThread
void runInUiThread(int result, UiCallback uiCallback) {
Toast.makeText(context, result + ", just a test", Toast.LENGTH_SHORT)
.show();
System.out.println("you can write the ui code ...");
uiCallback.onBackgroundEnd();
}
}

回调接口

package edu.njupt.zhb.main;

/**
* @author Zheng Haibo
* @web http://www.mobctrl.net
*/
public interface UiCallback {
public void onBackgroundEnd();
// ...
}

我认为依照这个思路写。代码会比較清爽。

兴许说原因,先回宿舍了。

。。。

最新文章

  1. C#多线程--线程池(ThreadPool)
  2. RabbitMQ Exchange &amp; Queue Design Trade-off
  3. Android的Message Pool是什么——源码角度分析
  4. 当在浏览器输入一个url访问后发生了什么
  5. 2016年5月11日摘自知乎的一些Redis大概了解
  6. CDOJ 1259 昊昊爱运动 II 线段树+bitset
  7. HDU 5882 Balanced Game
  8. VC进程提权
  9. Hive自己定义函数的使用——useragent解析
  10. JavaScript面向对象之Windows对象
  11. (转载)Windows 上搭建Apache FtpServer
  12. ubuntu下chromium浏览器flash插件安装
  13. PIL绘图
  14. 【机器学习】--LDA初始和应用
  15. CentOS7配置crate集群
  16. TortoiseSVN设置Beyond Compare为版本比较、差异合并工具
  17. Mybatis的初步使用
  18. 服务管理(svcadm)
  19. RabbitMQ Study
  20. mysql user表 权限字段详解

热门文章

  1. 专题九:实现类似QQ的即时通信程序
  2. [ SDOI 2006 ] 仓库管理员的烦恼
  3. ES6特性之模块【Modules】
  4. JavaScript(十三)面向对象
  5. 程序员必知的LinuxShell命令
  6. Python 快排[pythonnic]
  7. POJ_1611_The Suspect
  8. gearman的安装与使用
  9. S-HR之代码创建临时表并插入数据
  10. Bookshelf 2(poj3628,01背包,dp递推)