eventbus+butterknife

导入依赖

implementation 'org.greenrobot:eventbus:3.1.1'
    implementation 'com.jakewharton:butterknife:8.8.1'

    annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'

写一个类MessageEvent

/**
 * 定义事件
 */
public class MessageEvent {
    /* Additional fields if needed */


    private String message;


    public MessageEvent(String message) {
        this.message = message;
    }


    public String getMessage() {
        return message;
    }

}

MainActivity里面

public class MainActivity extends AppCompatActivity implements View.OnClickListener {


    private static final String TAG = "MainActivity";


    /**
     * 跳转到Second
     */
    private Button mBt;
    /**
     * 发送消息
     */
    private Button mBt2;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        //注册
        EventBus.getDefault().register(this);
    }


    @Override
    protected void onDestroy() {
        super.onDestroy();
        //注销
        EventBus.getDefault().unregister(this);
    }


    /*@Subscribe(threadMode = ThreadMode.BACKGROUND)
    public void onMessageEvent(MessageEvent event) {
        Log.e("MainActivity", "当前线程:" + Thread.currentThread().getName());
        *//* Do something *//*
        Toast.makeText(MainActivity.this, "onMessageEvent接收到了消息", Toast.LENGTH_SHORT).show();
    }*/


    @Subscribe(threadMode = ThreadMode.POSTING, priority = 1)
    public void onMessageEvent1(MessageEvent event) {
        Log.i(TAG, "onMessageEvent1(), message is " + event.getMessage());
    }


    @Subscribe(threadMode = ThreadMode.POSTING, priority = 2)
    public void onMessageEvent2(MessageEvent event) {
        Log.i(TAG, "onMessageEvent2(), message is " + event.getMessage());
        // 取消事件
        EventBus.getDefault().cancelEventDelivery(event);
    }


    @Subscribe(threadMode = ThreadMode.POSTING, priority = 3)
    public void onMessageEvent3(MessageEvent event) {
        Log.i(TAG, "onMessageEvent3(), message is " + event.getMessage());
    }


    @Subscribe(threadMode = ThreadMode.POSTING, priority = 4)
    public void onMessageEvent4(MessageEvent event) {
        Log.i(TAG, "onMessageEvent4(), message is " + event.getMessage());
    }


    @Subscribe(threadMode = ThreadMode.POSTING, priority = 5)
    public void onMessageEvent5(MessageEvent event) {
        Log.i(TAG, "onMessageEvent5(), message is " + event.getMessage());
    }


    private void initView() {
        mBt = (Button) findViewById(R.id.bt);
        mBt.setOnClickListener(this);
        mBt2 = (Button) findViewById(R.id.bt2);
        mBt2.setOnClickListener(this);
    }


    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            default:
                break;
            case R.id.bt:
                Intent intent = new Intent(MainActivity.this, SecondActivity.class);
                startActivity(intent);
                break;
            case R.id.bt2:
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        Log.e("MainActivity", "当前线程:" + Thread.currentThread().getName());
                        EventBus.getDefault().postSticky(new MessageEvent("dsfs"));
                    }
                }).start();


                break;
        }
    }

}


SecondActivity里面

public class SecondActivity extends AppCompatActivity implements View.OnClickListener {


    /**
     * 发送消息
     */
    private Button mBt;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
//        EventBus.getDefault().register(this);
        initView();
    }


    @Override
    protected void onDestroy() {
        super.onDestroy();
//        EventBus.getDefault().unregister(this);
    }




    private void initView() {
        mBt = (Button) findViewById(R.id.bt);
        mBt.setOnClickListener(this);
    }


    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            default:
                break;
            case R.id.bt:
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        Log.e("SecondActivity", "当前线程:" + Thread.currentThread().getName());
                        EventBus.getDefault().post(new MessageEvent("second 发送的消息"));
                    }
                }).start();
                break;
        }
    }

}

butterknife

写一个ButterActivity

public class ButterActivity extends AppCompatActivity {


    @BindView(R.id.tv)
    TextView mTv;
    @BindView(R.id.bt)
    Button mBt;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_butter);
        ButterKnife.bind(this);
    }




    @OnClick({R.id.tv, R.id.bt})
    public void onClick(View v) {
        switch (v.getId()) {
            default:
                break;
            case R.id.tv:
                break;
            case R.id.bt:
                break;
        }
    }
}



猜你喜欢

转载自blog.csdn.net/qq_40702815/article/details/80290955