当前位置: 首页 > wzjs >正文

企业免费网站建设模板seopc流量排名官网

企业免费网站建设模板,seopc流量排名官网,wordpress添加顶和踩,惠州市两学一做网站我现在想用 RxBus 来发布和订阅事件,同时使用 ICompositeSubscription 来管理订阅。跟前一个博客的区别在于,事件流的产生方式不同,更加得全面。 目标 使用 RxBus 发布事件。使用 ICompositeSubscription 来管理订阅。在 Activity 中创建订…

        我现在想用 RxBus 来发布和订阅事件,同时使用 ICompositeSubscription 来管理订阅。跟前一个博客的区别在于,事件流的产生方式不同,更加得全面。

目标

  • 使用 RxBus 发布事件。
  • 使用 ICompositeSubscription 来管理订阅。
  • Activity 中创建订阅,并确保在 Activity 销毁时取消订阅,避免内存泄漏。

代码实现

1、RxBus:发布和订阅事件。

public class RxBus {private final SerializedSubject<Object, Object> subject;public RxBus() {subject = new SerializedSubject<>(PublishSubject.create());}public void post(Object object) {subject.onNext(object); // 发布事件}@NonNullpublic <T> Observable<T> toObservable(Class<T> type) {return subject.ofType(type); // 转换成指定类型的 Observable}public <T> Subscription toSubscription(Class<T> type, Action1<T> action1, Scheduler scheduler) {return this.toObservable(type).subscribeOn(scheduler) // 指定线程调度器.subscribe(action1);}
}

2、 ICompositeSubscription:管理订阅。

public class ICompositeSubscription {private CompositeSubscription mCompositeSubscription;public ICompositeSubscription() {mCompositeSubscription = new CompositeSubscription();}public Subscription putSubscription(Subscription subscription) {mCompositeSubscription.add(subscription); // 添加订阅return subscription;}public void unSubscribe() {if (mCompositeSubscription != null) {mCompositeSubscription.clear(); // 取消所有订阅}}
}

3、Event 类:定义事件类。

public class Event {private String message;public Event(String message) {this.message = message;}public String getMessage() {return message;}
}

4、Activity 代码:在 Activity 中,使用 RxBus 发布和订阅事件,并使用 ICompositeSubscription 来管理订阅。

public class MyActivity extends AppCompatActivity {private ICompositeSubscription subscriptionManager = new ICompositeSubscription();private RxBus mRxBus;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mRxBus = new RxBus();  // 初始化 RxBus// 设置订阅事件的规则Subscription subscription = mRxBus.toObservable(Event.class) // 订阅 Event 类型的事件.observeOn(AndroidSchedulers.mainThread()) // 在主线程处理.subscribe(event -> {Log.d("RxJava", "收到事件:" + event.getMessage());});// 管理订阅subscriptionManager.putSubscription(subscription);// 模拟发布事件findViewById(R.id.btnSendEvent).setOnClickListener(view -> {// 发布一个 Event 类型的事件mRxBus.post(new Event("Hello from RxBus!"));});}@Overrideprotected void onDestroy() {super.onDestroy();// 取消所有订阅,避免内存泄漏subscriptionManager.unSubscribe();}
}

代码解释

  1. RxBus

    • 用于发布和订阅事件。通过 post() 方法发布事件,使用 toObservable() 将事件转换为 Observable,让订阅者可以订阅该事件。
  2. ICompositeSubscription

    • 用于管理多个订阅。在 onCreate() 中,订阅事件后将订阅对象加入到 CompositeSubscription 中,确保在 onDestroy() 时可以统一取消所有订阅,避免内存泄漏。
  3. Event

    • 简单的事件类,包含一个 message 字段和构造方法,用于传递事件数据。
  4. MyActivity

    • onCreate() 中初始化 RxBusICompositeSubscription,并订阅 Event 类型的事件。
    • btnSendEvent 按钮点击后,调用 RxBus.post() 发布一个事件。
    • onDestroy() 中调用 subscriptionManager.unSubscribe() 来取消订阅。

重要概念

  • RxBus 的发布和订阅

    • RxBus 是一个事件总线,通过 toObservable()post() 方法实现发布和订阅事件。
    • 订阅 RxBus 后,每当有事件发布时,订阅者会接收到这个事件,并做出响应。
  • ICompositeSubscription 的作用

    • ICompositeSubscription 管理多个订阅,当 Activity 销毁时,调用 unSubscribe() 取消所有订阅,防止内存泄漏。
    • Activity 中添加每个新的订阅并通过 putSubscription() 方法管理。


文章转载自:

http://av40Z9yI.fydsr.cn
http://cfG15eOB.fydsr.cn
http://FdhpCFJj.fydsr.cn
http://JXlkcRU6.fydsr.cn
http://uY8uxSDW.fydsr.cn
http://tz2pvW5y.fydsr.cn
http://PfR70VO1.fydsr.cn
http://NF0S2ZaX.fydsr.cn
http://GtVQ4rmY.fydsr.cn
http://by5csIxz.fydsr.cn
http://aZyIY3Zg.fydsr.cn
http://MNvU7WF7.fydsr.cn
http://T4FtLzAh.fydsr.cn
http://oDegRXcD.fydsr.cn
http://xJgJyeQX.fydsr.cn
http://uBWIbIQ6.fydsr.cn
http://EacQZlVJ.fydsr.cn
http://UNIpCMHp.fydsr.cn
http://W6e7XQjJ.fydsr.cn
http://W5AZ9L62.fydsr.cn
http://VNreYrGD.fydsr.cn
http://EKaJ6VGK.fydsr.cn
http://Hg9lgBIo.fydsr.cn
http://6svsH539.fydsr.cn
http://s0tSwPJD.fydsr.cn
http://kHnK8hAM.fydsr.cn
http://u1RVWtur.fydsr.cn
http://hlL52A5L.fydsr.cn
http://LBPsymh0.fydsr.cn
http://kbc5Kpau.fydsr.cn
http://www.dtcms.com/wzjs/625511.html

相关文章:

  • 兰州网站建设优化制作公司网站建设需要的专业知识
  • 招聘网站如何做SEO大兴手机网站建设
  • 金融中介做网站需要了解网页制作的基本知识
  • 旅游网站建设的组织性我的网站首页打不开
  • 多种网站建设杭州网站建站
  • 有做销售产品的网站wordpress 主题使用教程
  • 免费建手机网站后台wordpress 生成po
  • 长春火车站照片免费的产品推广平台
  • 怎样免费自己做网站视频世界各国域名大全
  • 西安二手房价格走势最新消息安徽网络优化公司排名
  • 浙江省网站备案时间普象工业设计网官网
  • 西安网站定制网上学设计哪个网站好
  • 网站如何在百度东莞发布最新通告
  • 免费网站在哪里申请表营销网站主题有哪些
  • 网站页面结构网页网站公司如何做备份
  • 怎么下载自己做的网站wordpress如何用API采集
  • 哈尔滨网站制作公司电话房地产销售额
  • 制作公司网站教程聊天软件开发哪个好点
  • 珠海专业网站制作中国前十强集团
  • 平台网站做数据维护需要多久wordpress阿里百变
  • 网站技术防护建设wordpress禁止访问模版页面
  • 如何用照片做模板下载网站做网站的越来越少了
  • 南京做网站xjrkj中国移动一键登录
  • 推广网站最有效方法摄影网站的建设的论文
  • 公司做一个网站内容如何设计方案品牌推广运营策划方案
  • 一个网站需要多少钱ui设计难学吗
  • 宿州网站建设价格工资8000以上的工作
  • 招聘网站建设的目的wordpress 作者归档
  • 公司网站建设哪儿济南兴田德润实惠吗老铁外链
  • php网站开发教学网页制作网站受众群体分析