XXHander
Introduction: 有没有觉得 eventbus 用起来很麻烦 有没有觉得 eventbus 有的功能没有, 有没有觉得 eventbus 很大? 这个框架就用解决这些问题的 , 发送消息 接收消息一句话搞定, 无泄漏
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();
这个方法获得
接收消息的类需要实现 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 在具体类中复写下就行了