androidannotations的background和UiThread配合使用參考
2024-09-25 21:28:47
简单介绍
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();
// ...
}
我认为依照这个思路写。代码会比較清爽。
兴许说原因,先回宿舍了。
。。。
最新文章
- C#多线程--线程池(ThreadPool)
- RabbitMQ Exchange &; Queue Design Trade-off
- Android的Message Pool是什么——源码角度分析
- 当在浏览器输入一个url访问后发生了什么
- 2016年5月11日摘自知乎的一些Redis大概了解
- CDOJ 1259 昊昊爱运动 II 线段树+bitset
- HDU 5882 Balanced Game
- VC进程提权
- Hive自己定义函数的使用——useragent解析
- JavaScript面向对象之Windows对象
- (转载)Windows 上搭建Apache FtpServer
- ubuntu下chromium浏览器flash插件安装
- PIL绘图
- 【机器学习】--LDA初始和应用
- CentOS7配置crate集群
- TortoiseSVN设置Beyond Compare为版本比较、差异合并工具
- Mybatis的初步使用
- 服务管理(svcadm)
- RabbitMQ Study
- mysql user表 权限字段详解