• EventBus广播


    第一步:添加依赖

     compile 'org.greenrobot:eventbus:3.0.0'
    

    第二步:定义消息事件类

    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;
        }
    }
    

    第三步:注册和解除注册

    分别在FirstActivity的onCreate()方法和onDestory()方法里,进行注册EventBus和解除注册。

    package com.example.lenovo.testapp.ui;
    
    import android.content.Intent;
    import android.os.Bundle;
    import android.support.annotation.Nullable;
    import android.support.v7.app.AppCompatActivity;
    import android.view.View;
    import android.widget.Button;
    import android.widget.TextView;
    
    import com.example.lenovo.testapp.R;
    import com.example.lenovo.testapp.event.MessageEvent;
    
    import org.greenrobot.eventbus.EventBus;
    import org.greenrobot.eventbus.Subscribe;
    import org.greenrobot.eventbus.ThreadMode;
    
    /**
     * Created by ZZG on 2018/1/10.
     */
    
    public class FirstActivity extends AppCompatActivity {
        private Button mButton;
        private TextView mText;
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.first_activity);
            mButton = (Button) findViewById(R.id.btn1);
            mText = (TextView) findViewById(R.id.tv1); 
            mText.setText("今天是星期三"); 
            EventBus.getDefault().register(this);
            jumpActivity();
        }
    
        private void jumpActivity() {
    
            mButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent=new Intent(FirstActivity.this,SecondActivity.class);
                    startActivity(intent);
                }
            });
        }
    
    
        @Subscribe(threadMode = ThreadMode.MAIN)
        public void Event(MessageEvent messageEvent) {
            mText.setText(messageEvent.getMessage());
        }
    
        @Override
        protected void onDestroy() {
            super.onDestroy();
            if(EventBus.getDefault().isRegistered(this)) {
                EventBus.getDefault().unregister(this);
            }
        }
    
    }
    
    

    事件处理

    在这里,事件的处理线程在主线程,是因为,我要让TextView去显示值。
    在 SecondActivity里去进行事件的发送。

    package com.example.lenovo.tezs;
    
    import android.os.Bundle;
    import android.support.annotation.Nullable;
    import android.support.v7.app.AppCompatActivity;
    import android.view.View;
    import android.widget.Button;
    
    import org.greenrobot.eventbus.EventBus;
    
    /**
     * Created by ZZG on 2018/1/10.
     */
    
    public class SecondActivity extends AppCompatActivity {
        private Button mButton2;
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.second_activity);
            mButton2=(Button) findViewById(R.id.btn2);
            jumpActivity();
        }
    
        private void jumpActivity() {
            mButton2.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    EventBus.getDefault().post(new MessageEvent("欢迎大家浏览我写的博客"));
                    finish();
                }
            });
        }
    }
    
    

    很简单,当点击按钮的时候,发送了一个事件。


     
  • 相关阅读:
    C语言学习第八章
    C语言学习第七章
    C语言学习第六章
    C语言学习第五章
    ssh的bug
    Oracel 用户管理
    初识Kettle
    IDEA使用MAVEN时自动创建骨架卡的设置
    2017/6/12 JSON
    DDL,DML,DQL
  • 原文地址:https://www.cnblogs.com/needly/p/8926087.html
Copyright © 2020-2023  润新知