AndroidAnnnotations注入框架使用之第三方框架集成Otto事件总线(十四)

 

 

本文出自:【江清清的博客】

(一).前言:

前面我们已经对于AndroidAnnotations框架集成RoboGuice做了讲解,今天我们开始具体学习一下第三方框架集成Otto事件总线。Otto事件总线和我们经常使用Eventbus差不多。Otto 官网: http://square.github.io/otto/,Otto框架的主要功能是帮助我们来降低多个类之间的耦合度的(解耦)。

 

(二).集成Otto和AndroidAnnotations

  • 集成AndroidAnnotations框架到项目中(具体方法见:【FastDev4Android框架开发】AndroidAnnnotations注入框架介绍和Android Studios基本配置(七)
  • 集成otto框架到项目中(具体请查看http://square.github.io/otto/)这边讲一下AndroidStudio配置吧:

    dependencies {

    compile 'com.squareup:otto:1.3.8'

    }

    • 使用@EBean来为事件总线创建一个单例类
    • 创建通过事件总线传输分发的事件类
    • 使用bus.post()来进行发送事件到事件总线中
    • 使用@Subscribe进行注解来获取发布的事件

      下面的实例表示Fragment进行通知Activity标题发生更新:

       

      // Declare the busas an enhanced bean
      @EBean(scope =Scope.Singleton)
      public class OttoBusextends BasicBus {
       
      }
      public classUpdateTitleEvent {
       
              public final String title;
       
              public UpdateTitleEvent(String title) {
                      this.title = title;
              }
       
      }

      @EActivity(R.layout.hello_activity)
      public classHelloAndroidActivity extends FragmentActivity {
       
              @Bean
              OttoBus bus;
       
              @Override
              protected void onCreate(BundlesavedInstanceState) {
                     super.onCreate(savedInstanceState);
                      bus.register(this);
              }
       
              @Override
              protected void onDestroy() {
                      super.onDestroy();
                      bus.unregister(this);
              }
       
          @Subscribe
          public void onUpdateTitle(UpdateTitleEventevent) {
              setTitle(event.title);
          }
       
      }

      @EFragment(R.layout.hello_fragment)
      public classHelloFragment extends Fragment {
       
          int counter = 1;
       
          @Bean
          OttoBus bus;
       
          @Click
          void fragmentButtonClicked() {
              bus.post(newUpdateTitleEvent(Clicks:  + counter++));
          }
      }
      到此位置关于AndroidAnnotations第三方框架集成之Otto集成已经全部讲解完成了。

       

       

更多相关文章
  • 在上一篇从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漏洞补丁"为名诱使用户下载安装,病毒安装后,会未经用户同意,暗中启动任务管理应用,建立任务,影响用户对手机的正常使用,并可能触发窃取隐私的行 ...
一周排行
  • 放在conn.asp里就行了. 屏蔽通过地址栏攻击url=Request.ServerVariables("QUERY_STRING")if instr(url,";")> ...
  • 马宁被选为为互联网协会秘书长
  • 分类信息网站身陷质疑漩涡.3月25日,58同城被指资金链出现问题.现金流只够维持运转4个月.此前,赶集网则被传大规模裁员.面临倒闭.引起资金链传闻四起的罪魁祸首都围绕"团购",如"58团 ...
  • 1.使用split函数 name.url的内容: 上海 http://trip.elong.com/shanghai/jingdian elong destination 云南 http://trip.elong.c ...
  • ExtJs4.2应用:根据自定义格式显示列字段信息 data:dataIndex的值,就是status的值 cell:单元格的相关属性 record:这行的数据对象.通过record.get('XXXX')方式得到X ...
  • 易网科技讯 6月21日消息,近日媒体.微博等多有传闻称万达电商CEO龚义涛已于近期离职,万达集团电商业务可能会受此影响.但有消息人士表示,此消息纯属谣传.不过此消息绝非空穴来风,目前万达集团分为商业地产.高级酒店.旅 ...
  • 在iOS8中会发现默认是没有全部显示的,在iOS7中适用的代码 if ([self.myCardTableView respondsToSelector:@selector(separatorInset)]) { s ...
  • 原文参照开发者官网:http://developer.android.com/training/animation/screen-slide.html#viewpager   以App的引导页为例: 首先创建一个包含 ...
  • 有时候遇到apk文件zip加密了,classes.dex有密码保护,无法解压出来(应当说是三个文件被密码保护 AndroidManifest.xml classes.dex resources.arsc) 怎么做到c ...
  • 做过.net开发的朋友对于事件应该都不陌生.追溯历史,事件(Event)首先应用在Com和VB上,它是对在MFC中使用的烦琐的消息机制的一个封装,然后.net又继承了这种事件驱动机制,这种事件也叫.net事件.正如W ...