优雅地使用rxbus

简介: //响应事件源,多tag@Subscribe(thread = EventThread.MAIN_THREAD, tags = {@Tag(RxBusAction.
//响应事件源,多tag
@Subscribe(thread = EventThread.MAIN_THREAD, 
        tags = {@Tag(RxBusAction.MAIN_HOME_REFRESH),
                @Tag(RxBusAction.ON_APP_LOGOUT)})
public void loadHomeModule(RxBusMsg<HomeModule> event) {
    Clog.e("loadHomeModule ");


}
//响应事件源,单tag
@Subscribe(thread = EventThread.MAIN_THREAD, tag=RxBusAction.ON_APP_LOGIN)
public void refresh(RxBusMsg<HomeModule> event) {
    Clog.e("refresh");


}
//post msg,根据 Action:ON_APP_LOGOUT可以直接查找订阅者,提供了两中响应的纬度
//1.action 2.class
RxBus.post(RxBusAction.ON_APP_LOGOUT, new RxBusMsg<HomeModule>(null));


/**
 * 定义event action的常量
 *
 * @author GanQuan
 * @since 2018/3/15.
 */
// msg constants
public interface RxBusAction {
    String MAIN_HOME_REFRESH = "main_home_refresh";
    String ON_APP_LOGOUT = "on_app_logout";
    String ON_APP_LOGIN = "on_app_login";

}


/**
 * event消息体
 *
 * @author GanQuan
 * @since 2018/3/15.
 */

public class RxBusMsg<T> implements Serializable {
    public String tag;
    public T value;

    /**
     * @param value 当value为空时必须传入泛型的类型
     */
    public RxBusMsg(@NonNull T value) {
        this.value = value;
    }

    public RxBusMsg<String> obtainMsg(String msg) {
        return new RxBusMsg<>(msg);
    }
}

目录
相关文章
|
7月前
|
安全 Android开发
你是否了解 RxJava 的 Disposable ?
你是否了解 RxJava 的 Disposable ?
260 0
|
Java API 调度
Kotlin 中的suspend 关键字
Kotlin 中的suspend 关键字
219 0
|
XML Android开发 数据格式
Android实现ProgressBar旋转菊花加载的动画
Android实现ProgressBar旋转菊花加载的动画 在一些常见到的加载中需要显示一个加载动画,如旋转的菊花这样的动画效果,开发中有两种方案,一种是直接让设计师给出一个gif图片,然后写入到布局,另外一种,使用Android动画,把一张静止的图片动起来,本例用后者实现。
3765 0
|
算法 Java Android开发
Android rxjava和LiveData中的内存泄漏
Android rxjava和LiveData中的内存泄漏
224 0
|
7月前
|
存储 Android开发 C++
【Android 从入门到出门】第五章:使用DataStore存储数据和测试
【Android 从入门到出门】第五章:使用DataStore存储数据和测试
182 3
|
存储 安全 Java
Android DataStore:安全存储和轻松管理数据
Android DataStore:安全存储和轻松管理数据
|
7月前
|
机器学习/深度学习 人工智能 物联网
未来操作系统的发展趋势与挑战
随着科技的不断进步,操作系统作为计算机系统的核心,也在不断演化和发展。本文从人工智能、物联网、云计算等方面探讨了未来操作系统的发展趋势和面临的挑战,展望了操作系统在技术革新中的重要地位。
|
存储 移动开发 缓存
JavaScript面试题系列(6)每篇10题
JavaScript面试题系列(6)每篇10题
37 0
|
XML 前端开发 Java
Android极简MVVM,从一个基类库谈起
这篇文章,主要详细介绍如何封装一个MVVM的基类库,以及MVVM架构模式在实际业务中的用法,最后会把实际的封装代码开源,并提供远程依赖。
180 0
|
存储 XML 安全
Android Jetpack系列之DataStore
`Jetpack DataStore` 是一种改进的新数据存储解决方案,允许使用**协议缓冲区**存储键值对或类型化对象。`DataStore` **以异步、一致的事务方式存储数据,克服了 SharedPreferences(以下统称为SP)的一些缺点**。`DataStore`基于`Kotlin`协程和`Flow`实现,并且可以对`SP`数据进行迁移,旨在取代`SP`
573 0