com.blankj:utilcode 之 BusUtils 使用

上篇文章认真学习了EventBus的使用,今天来学习Blankj大佬的BusUtils使用,
Github地址

使用非常简单,如果你会使用EventBus那么上手这个就非常容易,几分钟就能搞定

1,引用:
这个是你的项目的build.gradle

buildscript {
    repositories {
        google()
        jcenter()
        
    }
    dependencies {
        //插件的引入
        classpath 'com.blankj:bus-gradle-plugin:2.1'
        classpath 'com.android.tools.build:gradle:3.4.0'
        
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

在App的build.gradle

//使用这个插件
apply plugin: "com.blankj.bus"
android {
 ......
    
}

dependencies {
    ......
    //引入blankj:utilcode
    api "com.blankj:utilcode:1.25.9"

}

2.使用
BusUtilsActivity 是接收发送的消息的活动

public class BusUtilsActivity extends AppCompatActivity {


    public static final String TAG_NO_PARAM = "TagNoParam";
    public static final String TAG_ONE_PARAM = "TagOneParam";
    public static final String TAG_STICKY_PARAM = "TagStickyParam";

    @BusUtils.Bus(threadMode = BusUtils.ThreadMode.SINGLE, tag = TAG_NO_PARAM)
    public void noParamFun() {
        Log.d("BusUtilsActivity", "noParamFun: -------不带参数");
    }

    @BusUtils.Bus(tag = TAG_ONE_PARAM)
    public void oneParamFun(String param) {
        Log.d("BusUtilsActivity", "oneParamFun: -------" + param);
    }

    @BusUtils.Bus(tag = TAG_STICKY_PARAM)
    public void oneStickyParam(String param) {
        Log.d("BusUtilsActivity", "oneStickyParam: -------" + param);
    }


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_bus_utils);
        BusUtils.register(this);

        Button jumpBtn = findViewById(R.id.jumpBtn);
        jumpBtn.setOnClickListener(v -> {
            ActivityUtils.startActivity(new Intent(this, BusUtils2Activity.class));
        });

    }


    @Override
    protected void onDestroy() {
        super.onDestroy();
        BusUtils.unregister(this);
    }
}

//BusUtils2Activity 这个是发送消息的活动

public class BusUtils2Activity extends AppCompatActivity {

    Button send1, send2, stickSend;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_bus_utils2);
        send1 = findViewById(R.id.send1);
        send2 = findViewById(R.id.send2);
        stickSend = findViewById(R.id.stickSend);
        send1.setOnClickListener(v -> {
            //发送不带参数的消息
            BusUtils.post("TagNoParam");
            finish();
        });
        send2.setOnClickListener(v -> {
            //发送带参数的消息
            BusUtils.post("TagOneParam", "我是带参数的");
            finish();
        });

        stickSend.setOnClickListener(v -> {
             //发送粘性的带参数的消息
            BusUtils.postSticky("TagStickyParam", "我是粘性的");
            finish();
        });

    }
}

使用到此结束,看了Blankj大佬的测试,Busutils的效率比EventUtils的效率要好很多,我也没有测试,我也不敢问,在项目中都可以愉快的使用了;

注意,如果使用AndroidX的一定要记得引用这个
// if u use AndroidX, use the following
implementation ‘com.blankj:utilcodex:1.25.9’

你可能感兴趣的:(学习笔记,github开源库,Android)