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;
        }
    }
    
  • 相关阅读:
    as3 的相关资源
    linux 进程用户栈和内核栈
    Chapter 11 进程与信号 @ linux
    linux/unix下setuid/seteuid/setreuid/setresuid
    poj 3259 spfa 虫洞问题判到点1时候有环
    My Vimrc Archive
    C/C++函数调用的几种方式
    Git常用命令解说 [robby certification]
    Linux Chapter 11 进程与信号
    XNA游戏开发之(四)——改变Draw频率
  • 原文地址:https://www.cnblogs.com/prophet-it/p/8921460.html
Copyright © 2011-2022 走看看