AndroidAnnnotations注入框架使用之第三方框架集成RoboGuice(十三)

 

 

(一).前言:

前面我们已经对于AndroidAnnotations框架的线程处理做了讲解,今天我们开始具体学习一下第三方框架集成。

 

(二).RoboGuice集成

2.1.简介说明

自AndroidAnnotations1.0起,AndroidAnnotations已经完成集成了RoboGuice1.1.1。

自AndroidAnnotations3.1起,发布的RoboGuice1.0版本已经从RoboGuice2.0版本中移除了。

自AndroidAnnotations3.3起,从发布的RoboGuice3.0版本开始,该更新已经被支持。现在RoboGuice的最新版本是3.0。

 

AndroidAnnnotations注入框架使用之第三方框架集成RoboGuice(十三)

AndroidAnnnotations注入框架使用之第三方框架集成RoboGuice(十三)

 

2.2.集成RoboGuice和AndroidAnnotations

  • 集成AndroidAnnotations框架到项目中(具体方法见:【FastDev4Android框架开发】AndroidAnnnotations注入框架介绍和Android Studios基本配置(七)
  • 集成RoboGuice框架到项目中(具体方法见:RoboGuice使用详解)
  • 修改我们的Activity,现在不需要该Activity继承RoboActivity了,[email protected](原来使用RoboGuice是需要Activity继承RoboActivity的)。
  • 现在让我们来看一下使用的例子

     

    @EActivity(R.layout.main)
    @RoboGuice({AstroListener.class,AnotherListener.class})
    public classAstroGirl extends Activity {
     
        @ViewById
        EditText edit;
     
        @Inject
        GreetingService greetingService;
     
        @Click
        void button() {
            String name =edit.getText().toString();
            greetingService.greet(name);
        }
    }
     
    public classAstroListener {
     
            @Inject
            Context context;
     
            public voiddoSomethingOnResume(@Observes OnResumeEvent onResume) {
                    Toast.makeText(context,Activity has been resumed, Toast.LENGTH_LONG).show();
            }
    }
    2.3.RoboGuice优点

     

    RoboGuice对于Android应用程序有GoogleGuice框架的支持,这意味着我们可以从依赖注入获得更加的优势,高内聚,低耦合。

    2.4.AndroidAnnotations优点

    • 在Android编译的时候进行注入组件(没有性能的影响)
    • 我们不需要在继承RoboActivity类了,这意味中我们可以集成任何类了,哪怕这些类不支持RoboGuice。这样我们就可以更多思考如何扩展我们的基类。
    • [email protected],@Background,@UiThread,@ItemSelect等等注解。

       

      2.5.@EBean中使用RoboGuice

      自AndroidAnnotations2.4起

      [email protected][email protected][email protected][email protected]消息是:现在他们没有花很多精力在RoboGuice上面,因为如果要全面支持RoboGuice,那么现在项目需要改动很多地方了。

      [email protected]RoboGuice,你只需要手动进行Guice注入,就和RoboActivity达到一样的效果啦。使用实例如下:

       

      @EBean
      public class MyBean{
       
          @App
          MyRoboApplication application;
       
          @Inject
          SomeClass myRoboGuiceDependency;
       
          @AfterInject
          void injectRoboGuiceDependencies() {
             application.getInjector().injectMembers(this);
          }
       
      } 

       

      到此位置关于AndroidAnnotations第三方框架集成之RoboGuice集成已经全部讲解完成了。

       

更多相关文章
  • 在上一篇从struts2的action中看ActionContext的存储结构中已经看到ActionContext.getActionContext.getContextMap()得到的map的大体结构类型. 这篇将从源代码层面进行分析. 一.回顾 在上一篇中看到ActionContext中存放的是 ...
  •   随着高清摄像机的使用越来越多,如何选择合适的.满足监控整体网络架构性能的交换机也成了在高清监控系统前期方案制定.项目报价中有着很重要的作用.一个合适的交换机,不仅能够发挥监控网络应有的功能并能够有效减少资源的浪费. 监控网络有三层架构方式:核心层.汇聚层.接入层. 以选用720P的摄像机为例,分 ...
  • 亿邦动力网最新获悉,万达电商CEO董策已于近期离职.亿邦动力网就此向万达电商官方核实,对方称并未接到类似消息,且董本人今天仍照常上班.董策离职虽然稍显突然,但并非没有蛛丝马迹.此前,亿邦动力网等诸多媒体曾接收到来自万达电商方面的邀请,并定于6月4日下午在北京与万达电商众高管会面.但万达电商下午却告知 ...
  • 1.1 概念 高可用集群,英文原文为High Availability Cluster,简称HA Cluster,简单的说,集群(cluster)就是一组计算机,它们作为一个整体向用户提供一组网络资源.这些单个的计算机系统 就是集群的节点(node). 高可用集群的出现是为了使集群的整体服务尽可能可 ...
  • 写在前面 阅读目录: Visual Studio "14" CTP 关于 ASP.NET vNext ASP.NET vNext 实践 后记 ASP.NET vNext 发布已经过去了一个多月的时间,发布详情请访问:振奋人心呐!关于下一代.NET——ASP.NET vNext 的 ...
  • 28日,网秦全球手机安全中心再度截获了一个名为"Nokia补丁骗子(BD.ConsApp)"的病毒,该病毒以"Nokia漏洞补丁"为名诱使用户下载安装,病毒安装后,会未经用户同意,暗中启动任务管理应用,建立任务,影响用户对手机的正常使用,并可能触发窃取隐私的行 ...
一周排行
  • 真是太奇妙了,感觉这是这个暑假写的最厉害的DP了(说的好像写过几道DP一样),设计的状态精妙.   因为题解不知道在说个毛线,而且貌似写错了,请问i-1的时候有j-1的活人为什么多攻击一次人会复活?反正我没看懂..而 ...
  • WLAN是Wireless Local Area Network的缩写,指应用无线通信技术将计算机设备互联起来,构成可以互相通信和实现资源共享的网络体系.无线局域网本质的特点是不再使用通信电缆将计算机与网络连接起来, ...
  • $(function() { $('#tt').combotree({ url: 'getTree.do', onBeforeSelect: function(node) { if (!$(this).tree('i ...
  • 题意:给定一幅图,每个点有一定权值,现在有一只老鼠在起始点(0,0),他能水平或者垂直移动1~k格之后,停在某点并获得权值,而且每次移动后所在的点,都要比刚离开的那个点的权值更大,求最多能获得多少权值. 分析:依旧是 ...
  • 转自 http://blog.csdn.net/jinglijun/article/details/8276089 通常在项目中使用静态库的时候都会有两个版本,一个用于模拟器,一个用于真机,因为Mac和iPhone的 ...
  • ListView :在Android应用开发过程中属于最常用的系统组件之一,当然可能童鞋们问为什么会突然游戏开发中讲这个,,其实在游戏开发中,也会常常使用到系统组件,比如游戏排行榜,简单的游戏关卡选择等等,都可以来使 ...
  • 执笔: polyrandom   http://www.allaboutprogram.com 开了一个新的版面:类库讨论,希望能够对流行的类库进行探讨,不仅可以从中获得使用经验,也可以为自己今后设计类库指明方向.A ...
  • 一边是不断高涨的影视剧网络传播版权费,一边是徘徊不前的侵权赔偿标准.水涨船不高,导致了很多网站宁可当被告,也不愿通过正当途径购买版权的怪现象.随着影视剧的网络视频版权频创"天价",网络视频侵权案的 ...
  • 持续下滑的业绩让股东萌生去意.联信永益今日披露,接股东联想投资的权益变动报告书,自8月31日至9月15日期间,联想投资通过深圳证券交易系统以集中竞价和大宗交易方式,累计出售所持的公司股份万股,占公司总股本的1.62% ...
  • 网站开发流程中有哪些步骤? 答: 需求分析 即通过多次沟通.访谈.参观等方式,知道客户"需要什么". Why?为什么建站?即明确组建网站的目的. i. 增加利润 ii. 传播信息或观点 iii. ...