• androidannotations的background和UiThread配合使用參考


    简单介绍

    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();
    	// ...
    }
    

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

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

    。。。

  • 相关阅读:
    html5实现GIF图效果
    响应式网页设计简单入门(强烈推薦!!!!)
    form表单提交和ajax表单提交,关于移动端如何通过软键盘上的【搜索】和【前进】进行提交操作
    【JavaScript】Write和Writeln的区别
    HTML表格中各元素标签的位置对style属性有效性的影响
    HTML textarea 莫名其妙出现几个空格的原因
    PHP 正则匹配手机号
    极简主义法编写JavaScript类
    jQuery on绑定事件
    jQuery ajax() 参数,回调函数,数据类型,发送数据到服务器,高级选项
  • 原文地址:https://www.cnblogs.com/mfmdaoyou/p/6853664.html
Copyright © 2020-2023  润新知