XXHander

Project Url: luoshihai/XXHander
Introduction: 有没有觉得 eventbus 用起来很麻烦 有没有觉得 eventbus 有的功能没有, 有没有觉得 eventbus 很大? 这个框架就用解决这些问题的 , 发送消息 接收消息一句话搞定, 无泄漏
More: Author   ReportBugs   DemoAPK   
Tags:
handler eventbus-

这个库的作者是这个大神写的 我只是根据我自己项目的特殊需求改了一点功能, 放到 github 上来用起来方便点

他的 github 地址

他的博客

添加依赖

1.在 project 目录的 build.gradle 的 allprojects 节点添加 java maven { url "https://jitpack.io" } 如下:

allprojects {
    repositories {
        jcenter()
        maven { url "https://jitpack.io" }
    }
}

2.在自己 Modul 的 build.gradle 中添加'compile 'com.github.luoshihai:XXHander:V1.0.1'' 如下:

dependencies {
        compile 'com.github.luoshihai:XXHander:V1.0.1'
}

使用方法

1.我们发送消息需要 handler 可以通过

mHander = BaseHandlerOperate.getBaseHandlerOperate();

这个方法获得

  1. 接收消息的类需要实现 BaseHandlerUpDate 这个接口 这个接口有一个方法 用来接收消息

    @Override public void handleMessage(Message msg) {

    } 上面的第一步和第二部你可以在一个具体类中写 假如有父类 你可以在父类中写 这样所有子类都用了 就不需要每个类都写了 例如:

    public class BaseActivity extends AppCompatActivity implements BaseHandlerUpDate{

     protected BaseHandlerOperate mHander;
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         mHander = BaseHandlerOperate.getBaseHandlerOperate();
     }
    
    @Override
    public void handleMessage(Message msg) {

    }
}

开始发消息

在发消息之前 要将自己注册到 handler 中 这样我才能将消息发送出去 例如:

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mHander.addKeyHandler(MainActivity.class, this);

然后发送消息

  mHander.putMessageKey(SecondActivity.class, 1, "mainActivity 发来的消息");

这个方法第一个参数是目标类的 class , 第二个参数是 what 用来区分消息 第三个参数就是发送的内容

接收消息

在接收消息之前 要将自己注册到 handler 中 这样我才能将消息接收:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_second);
    mHander.addKeyHandler(SecondActivity.class, this);

开始接收消息:

 @Override
public void handleMessage(Message msg) {
    super.handleMessage(msg);
    switch (msg.what) {
        case 1:
            mTextView.setText(((String) msg.obj));
            break;
    }
}

就是刚刚父类实现的 handleMessage 在具体类中复写下就行了

Apps
About Me
GitHub: Trinea
Facebook: Dev Tools