Android Otto框架浅析

标签: android otto 框架 | 发表时间:2014-07-13 01:12 | 作者:u011133213
出处:http://blog.csdn.net

今天要介绍的是一个Android中使用得比较多的android 事件总线 EventBus模式的一个框架Otto。

Otto 官网: http://square.github.io/otto/


一、Android Studio中配置Otto (Eclipse中直接下载jar包导入)

跟之前介绍的其他的框架一样,它只需要简单地在build.gradle中配置下面一行红色字体即可

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:19.+'
    / /otto 所需要依赖的包
    compile 'com.squareup:otto:+'

}


二、Otto事件总线框架浅析

1、为什么要用Otto框架?

Otto框架的主要功能是帮助我们来降低多个类之间的耦合度的(解耦)。

譬如:一个类A和另一个类B之间,如果A要操作B中的某个方法。


传统的方法:A直接调用B对象的该方法(耦合在一起)

事件总线机制:A不需要调用B类的方法,而仅仅需要产生并发出 一个“事件通知”, 如果B订阅了该“事件”

那么它将会接受到这个事件,做出相应的操作。这样就被解耦了。


2. Otto框架使用(结合代码介绍)

Otto框架其实相对之前的几个Android开源框架来说,更容易理解。

它主要运用到一个类: Bus类(用于注册类,注销类,发布事件)

两个注解: @Subscribe (订阅)    @Produce (生产)    【都是针对“事件”的注解】




为了方便,我这边没有使用两个类来做这个Demo, 不过如果大家要试的话也可以,不过记住一点,无论是

发布者类  还是 订阅者类, 都需要用Bus进行类的注册,还有注销。否则将没法被Bus识别,这样就无法生效了。

下面的Demo, 仅为了让大家知道“事件”被产生了之后,post出来,所有订阅了该事件的类都会接到该事件,接受的先后顺序,不由我们控制!

public class MyActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my);
        findViewById(R.id.button_change).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                BusProvider.getBusInstance().post(new DataChangedEvent("this is changed String"));//发布事件
            }
        });
    }

    @Override
    protected void onResume() {
        super.onResume();
        BusProvider.getBusInstance().register(this);//注册
        
    }

    @Override
    protected void onPause() {
        super.onPause();
        BusProvider.getBusInstance().unregister(this);//注销
    }

    @Subscribe   //订阅事件DataChangedEvent
    public void sayGoodOnEvent(DataChangedEvent event){
        Log.e("event", "good");
    }

    @Subscribe  //订阅事件
    public void sayBadOnEvent(DataChangedEvent event){
        Log.e("event", "bad");
    }

    @Produce    //产生事件
    public DataChangedEvent produceDataChangedEvent(){
        return new DataChangedEvent("this is changed String");
    }

}

作者:u011133213 发表于2014-7-12 17:12:39 原文链接
阅读:100 评论:0 查看评论

相关 [android otto 框架] 推荐:

Android Otto框架浅析

- - CSDN博客移动开发推荐文章
今天要介绍的是一个Android中使用得比较多的android 事件总线 EventBus模式的一个框架Otto. Otto 官网: http://square.github.io/otto/. 一、Android Studio中配置Otto (Eclipse中直接下载jar包导入). 跟之前介绍的其他的框架一样,它只需要简单地在build.gradle中配置下面一行红色字体即可.

android应用框架

- - CSDN博客移动开发推荐文章
原文地址:http://developer.android.com/guide/components/fundamentals.html. android应用程序一旦装进设备,每个程序会在它自己安全的沙盒里运行. 1.android操作系统是一个多用户linux系统,每一个应用程序是一个用户. 2.默认情况下,系统会为每个app分配唯一的linux用户id(这个id只会被系统使用,并且只会被这个app知道),系统为每个app的所有文件都设置了权限,只有被分配了这个app用户ID的程序可以访问它.

一些android开源框架

- - CSDN博客推荐文章
在目前软件开发行业中,流行着这么一句话“天下武功,唯快不破”. 而“快”,就不能让我们重复去制造论坛,不能去重新发明轮子. 目前开源界中已经有很多成熟的,得到了大量商用的开源软件和框架,我们就可以借鉴这有优秀的资源,才能在这个节奏速度的社会中博得一丝生存的机会. 我收集整理了一些优秀的android开源框架,希望能对android软件开发的朋友一点的帮助.

Android 程序框架设计

- - 互联网的那点事
每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心. 通过这种方式,你可以无数次地使用那些已有的解决方案,无需在重复相同的工作. 设计模式是在某种特别的情况下,针对某种问题的某种典型、通用的解决方法. 我们是需要适当了解并学习一些设计模式,在程序开发过程中,总是会涉及到一些框架设计,模块设计之类的东西,如果能很好理解并运行设计模式,你所设计的模块或框架将会要稳定得多,因为这些设计模式它们都是通用的解决方案,是经过实践经验了的.

2015推荐的Android框架

- - CSDN博客推荐文章
一、Guava Google的基于java1.6的类库集合的扩展项目,包括collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O等等. 这些高质量的API可以使你的JAVA代码更加优雅,更加简洁..

Android的快速开发框架afinal

- - CSDN博客推荐文章
afinal 是一个android的 orm 和 ioc 框架. 而且封装了android中的httpClient,使其更加简单易用. afinal是android应用开发的终极框架. FinalActivity使用方法:. FinalHttp使用方法:. 下载地址 http://code.google.com/p/afinal/downloads/list.

Android orm 框架xUtils简介 - lsc183

- - 博客园_首页
  数据库操作建议用ORM框架,简单高效. 这里推荐xUtils,里面包含DBUtils. github地址:https://github.com/wyouflf/xUtils.   获得数据库实例建议用单例模式.   创建一个实体类,对应数据库中的表.     private int id; //主键ID,必须.

Android框架之快速开发框架xUtil

- - CSDN博客推荐文章
做Android开发我们一般是从原生态的开始,就是调用默认那些Android代码来开发我们的应用,但是到了一定程度,我们就想着怎么来快速开发我们的应用,这个时候我们就要着手来研究框架了. 下面介绍一个很流行的框架xUtil:. xUtils 包含了很多实用的android工具. xUtils 最初源于Afinal框架,进行了大量重构,使得xUtils支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响....

Android开发之2016_最流行的Android组件、工具、框架大全

- - IT瘾-geek
MaterialDesigh资源整理. light_sky@weibo 整理的MaterialDesigh资源,很多资料. 填写一个表单, 选择你要集成的一些Android开源项目,自动给你生成一个应用程序. Android Button Maker是一个可以在线生成按钮代码的工具. Android API提供了XML文件定义的几何形状的Drawable资源,包括颜色、边界和梯度.

淘宝Android自动化测试框架 – TMTS

- wangdei - Taobao QA Team
2010年是淘宝无线突飞猛进开创无线新业务的一年. 而从2011年初开始,淘宝技术质量部自动化测试组便致力于手机自动化框架的调研和开发工作. TMTS(Taobao Mobile Test System)框架,正是尝试从Android和IPhone入手,建立无线测试领域的自动化测试整体解决方案. 经过前段时间的开发,及业务线试用,TMTS框架Android部分已经趋于稳定.