zoukankan      html  css  js  c++  java
  • EventBus3.0使用笔记.md

    事件总线这个其实没什么好说的,除了已经ondestroy的fragment或者activity不能接受外,只要定义了的都能接收消息
    代码如下,需要注意的一点就是接收的监听事件必须用public修饰并且加上@Subscribe注解

    compile 'org.greenrobot:eventbus:3.0.0'
    
    public class MainActivity extends Activity {
        private TextView textView;
        @Override
        public void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            textView = findViewById(R.id.tv);
    
            textView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Intent intent = new Intent();
                    intent.setClass(MainActivity.this, SecondActivity.class);
                    startActivity(intent);
                }
            });
    
            EventBus.getDefault().register(this);
        }
    
        @Subscribe
        public void onMessageEvent(MessageEvent messageEvent){
            textView.setText(messageEvent.getMessage());
        }
    
        @Override
        protected void onDestroy() {
            super.onDestroy();
    
            EventBus.getDefault().unregister(this);
        }
    }
    
    public class SecondActivity extends AppCompatActivity {
        private TextView tv_receive;
    
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_second);
            tv_receive = findViewById(R.id.tv_receive);
            tv_receive.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    EventBus.getDefault().post(new MessageEvent("发送成功"));
                    finish();
                }
            });
    
        }
        @Override
        protected void onDestroy() {
            super.onDestroy();
        }
    }
    
    public class MessageEvent {
    
        private String message;
    
        public MessageEvent(String message) {
            this.message = message;
        }
    
        public String getMessage() {
            return message;
        }
    
        public void setMessage(String message) {
            this.message = message;
        }
    }
    
  • 相关阅读:
    Did not find handler method for springMVC资源文件扫描不到---关于spring的那些坑
    mysql中OPTIMIZE TABLE的作用
    Linux环境下apache性能测试工具ab使用详解
    sqlite数据库 adb 从配置到查询表中数据全过程-----献给初学的自己
    c3p0参数解释
    linux下如何启动/停止/重启mysql:
    [MySQL] 变量(参数)的查看和设置
    mysql运行参数详解
    单例模式 理解,简单通透
    this的一些场景
  • 原文地址:https://www.cnblogs.com/prophet-it/p/8921460.html
Copyright © 2011-2022 走看看