zoukankan      html  css  js  c++  java
  • EventBus消息机制在Eclipse环境下的使用

    1、在onStart()方法中注册

    @Override
        public void onStart() {
            super.onStart();
            // 注册 EventBus
            // 判断 Eventbus 是否注册
            if (!EventBus.getDefault().isRegistered(this)) {
            EventBus.getDefault().register(this);
            }
        }

    2、在onStop()方法中销毁

    @Override
        public void onStop() {
            super.onStop();
            // 注销操作
            if (EventBus.getDefault().isRegistered(this)) {
                EventBus.getDefault().unregister(this);
            }
        }

    3、发送消息

    EventBus.getDefault().post(new EventBusMsgInfo(position));

    4、自定义方法 接受发送的数据

    @Subscribe(threadMode = ThreadMode.MAIN)
        public void getEventBusMsg(EventBusMsgInfo busMsgInfo){
            // 调用切换界面的方法,实现切换界面
            //该方法可直接将传递过来的数据进行操作
            switchPager(busMsgInfo.position);
        }
        定义发送消息传递的bean类
        public class EventBusMsgInfo {
        
            public int position;
        
            public EventBusMsgInfo(int position) {
                super();
                this.position = position;
            }
            
        }

    5、重点提示

      5.1、添加注解在此处有三种模式
                模式一:POSTING:默认的模式,发送和接受操作都在一个线程中执行
                模式二:MAIN:不管在那个线程发送消息,都在UI线程接收
                模式三:BACKGROUND:如果在子线程发送消息,那么接收也必须在子线程,如果在主线程发送消息,那么接收也必须在主线程。
                模式四:ASYNC:接收和发送都在子线程中执行
         5.2、EventBus发送消息 发送的对象应该是一个bean类本例中

  • 相关阅读:
    Linux 文件取交集 并集 差集
    阿里花名推荐
    Linux bg fg命令的使用
    python导入自己创建的本地包报错
    数值计算方法
    数据库oracle回顾
    使用visualBox创建Centos/7,搭建docker,安装mysql,及远程连接
    git 合并分支到master
    git 本地文件修改错误,重新取回服务器历史版本
    三本不错的计算机专业书籍(需求分析,开发实务,恶意代码分析)
  • 原文地址:https://www.cnblogs.com/yegong0214/p/6274797.html
Copyright © 2011-2022 走看看