Android框架之EventBus及Butterknife

一、EventBus:应用程序内各组件间、组件与后台线程间的通信。EventBus的核心在于:主线程发送消息、线程之间的通信,各组件传输数据,异步操作(开启子线程处理耗时任务),发送粘性事件等操作。

具体操作步骤:

1、需要在项目build.gradle里添加依赖 compile 'org.greenrobot:eventbus:3.0.0'
2、接收数据的类需要在onCreate里注册和在onDestroy里取消注册(注册后才能获得数据类(信息类))
3、自定义数据类
4、发送类通过EventBus.getDefault().post(new 自定义类)发送数据
5、接收类自定一个接收方法,参数需要为自定义类,还需要在上方添加线程类型@Subscribe(threadMode =ThreadMode.MAIN)
线程类型:
POSTING(默认):表示事件处理函数的线程跟发布事件的线程在同一个线程。
MAIN:表示事件处理函数的线程在主线程(UI)线程,因此在这里不能进行耗时操作。
BACKGROUND:表示事件处理函数的线程在后台线程,因此不能进行UI操作。如果发布事件的线程是主线程(UI线程),那么事件处理函数将会开启一个后台线程,如果果发布事件的线程是在后台线程,那么事件处理函数就使用该线程。
ASYNC:表示无论事件发布的线程是哪一个,事件处理函数始终会新建一个子线程运行,同样不能进行UI操作。
        //注册
        EventBus.getDefault().register( this );
        //取消注册
        EventBus.getDefault().unregister( this );
//自定义数据类
public class MyData {
    String name;
    int age;
    String address;

    public MyData(String name, int age, String address) {
        this.name = name;
        this.age = age;
        this.address = address;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}

 

    //接收方法
    @Subscribe(threadMode = ThreadMode.MAIN)    //threadMode为线程类型
    public void receiver(MyData data){    //3.0版本后方法名可以自取
        //接收到数据后对数据类的操作,具体逻辑
        String name;
        int age;
        String address;
        name=data.getName();
        age=data.getAge();
        address=data.getAddress();
        textView.setText( name+"\n"+age+address );
    }

 

        //发送数据
        EventBus.getDefault().post(new MyData("张三",20,"\n地球"));

 二、Butterknife:注解作用,根据布局控件id生成相应的后台代码,可省略findViewById(),setOnClickListener(),ListView的点击@OnItemClick, CheckBox的@OnCheckedChanged也可以实现省略操作

具体操作步骤:

1、File->Settings->Plugins->butterknife Zelezny添加插件(添加过就不用再添加了)

2、使用前需要在app下的build.gradle的dependencies下添加:
compile 'com.jakewharton:butterknife:8.4.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'

3、选中setContentView(R.layout.activity_main)这一行的布局文件activity_main:按快捷键
alt+insert,选中相应的控件和事件,生成后台代码

可以一次指定多个id,为多个View绑定一个事件处理方法: 

    //也可分离(spilt)处理@OnClick(R.id.button),在生成代码时选中spilt按钮即可
    @OnClick({R.id.button, R.id.checkBox, R.id.content})
    public void onViewClicked(View view) {
        switch (view.getId()) {
            case R.id.button:
                break;
            case R.id.checkBox:
                break;
            case R.id.content:
                break;
        }
    }

 

 

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android 框架项目是指在 Android 平台上开发的应用程序框架,包括了应用程序的架构、组件、模块、库等。在 Android 开发中,常用的框架项目包括: 1. Android Architecture Components:是 Google 推出的一组组件,包括了 Lifecycle、ViewModel、LiveData、Room 等,用于简化 Android 应用程序的架构设计和管理。 2. Retrofit:是 Square 公司开发的一款网络请求框架,可以处理各种类型的网络请求,包括 RESTful API、文件上传/下载等。 3. Dagger:是一款依赖注入框架,可以帮助开发者将对象之间的依赖关系解耦,提高代码的可维护性和可测试性。 4. RxJava:是一款响应式编程框架,可以帮助开发者处理异步操作和事件流,提高代码的简洁性和可读性。 5. Glide:是一款图片加载框架,可以帮助开发者快速加载网络图片,并提供了图片缓存等功能。 6. EventBus:是一款事件总线框架,可以帮助开发者实现组件之间的通信,提高代码的灵活性和可扩展性。 7. ButterKnife:是一款视图注入框架,可以帮助开发者简化视图绑定和事件绑定的代码,提高开发效率。 8. LeakCanary:是一款内存泄漏检测框架,可以帮助开发者及时发现和解决内存泄漏问题,提高应用程序的稳定性和性能。 总之,Android 框架项目可以帮助开发者快速构建高质量、可维护、可扩展的应用程序,提高开发效率和应用程序的用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值