互联网资讯

联系我们

互联网资讯

当前位置:主页 > 互联网资讯 >

androidannotations的background和UiThread配合使用参考,androidannotati

发布时间:2019-02-06 编辑:918Õ

androidannotations的background和UiThread配合使用参考,androidannotations
简介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();
	// ...
}

我觉得按照这个思路写,代码会比较清爽。后续说原因,先回宿舍了。。。。
android 注解的使用

你这是androidannotations里面的注解吧。直接去github上搜索androidannotation,进入后点击最下方的documentation,在新页面的右边有一个List of all available annotations,点击进去就有所有的注解,不明白的就可以点击链接看。

这些都是第三方的注解,不懂也不影响开发。
发不了链接,会被封。
 

http://www.bkjia.com/Androidjc/889392.htmlwww.bkjia.comtruehttp://www.bkjia.com/Androidjc/889392.htmlTechArticleandroidannotations的background和UiThread配合使用参考,androidannotations 简介 androidannotations在开发中的代码规范思考:(MVC思考)时间太紧,先贴代...

本文源自: AG环亚娱乐


Copyright © 2005-2016 http://www.paugme.com AG环亚娱乐_AG直营网_环亚娱乐AG最佳线路_网易体育版权所有 AG环亚娱乐_AG直营网_环亚娱乐AG最佳线路_网易体育