Android Otto框架浅析
来源:互联网 发布:it服务平台 编辑:程序博客网 时间:2024/05/16 11:19
今天要介绍的是一个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");
- }
- }
- Android Otto框架浅析
- Android Otto框架浅析
- Android Otto框架浅析
- Android Otto框架浅析
- Android Otto框架浅析
- Android Otto框架浅析
- 安卓OTTO框架浅析
- Android Otto框架
- Android事件总线框架Otto使用
- Android 事件总线Otto框架详解二
- Android事件总线 Otto框架使用
- 事件总线框架---Otto,总线框架---otto
- Android开源框架——事件总线otto
- Android开发之浅谈事件总线框架EventBus和Otto
- android中Otto事件总线框架的使用
- 事件总线框架---Otto
- 事件总线框架---Otto
- 事件总线框架-OTTO
- PAT A 1099. Build A Binary Search Tree (30)
- 4/12周报
- Java生产者-消费者模式的非阻塞队列实现
- BZOJ2565【回文自动机】
- 14.1 理解不同的并行技术
- Android Otto框架浅析
- 第6周项目4-1默认构造函数求两点之间的距离
- GSON与Json 解析
- Java中两种字符串初始化方法的区别
- HDU - 5202 Rikka with string 贪心
- 前端那些事儿(2) --- javascript模块化(下)
- Why Windows Threads Are Better Than POSIX Threads
- 本月几天
- 从零开始学swift(五)-算法之利用栈实现二叉树遍历