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

浦东新区手机网站设计优秀购物网站

浦东新区手机网站设计,优秀购物网站,90设计网站手机版,广告传媒公司简介模板我现在想用 RxBus 来发布和订阅事件#xff0c;同时使用 ICompositeSubscription 来管理订阅。跟前一个博客的区别在于#xff0c;事件流的产生方式不同#xff0c;更加得全面。 目标 使用 RxBus 发布事件。使用 ICompositeSubscription 来管理订阅。在 Activity 中创建订…        我现在想用 RxBus 来发布和订阅事件同时使用 ICompositeSubscription 来管理订阅。跟前一个博客的区别在于事件流的产生方式不同更加得全面。 目标 使用 RxBus 发布事件。使用 ICompositeSubscription 来管理订阅。在 Activity 中创建订阅并确保在 Activity 销毁时取消订阅避免内存泄漏。 代码实现 1、RxBus发布和订阅事件。 public class RxBus {private final SerializedSubjectObject, Object subject;public RxBus() {subject new SerializedSubject(PublishSubject.create());}public void post(Object object) {subject.onNext(object); // 发布事件}NonNullpublic T ObservableT toObservable(ClassT type) {return subject.ofType(type); // 转换成指定类型的 Observable}public T Subscription toSubscription(ClassT type, Action1T 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();} }代码解释 RxBus 类 用于发布和订阅事件。通过 post() 方法发布事件使用 toObservable() 将事件转换为 Observable让订阅者可以订阅该事件。 ICompositeSubscription 类 用于管理多个订阅。在 onCreate() 中订阅事件后将订阅对象加入到 CompositeSubscription 中确保在 onDestroy() 时可以统一取消所有订阅避免内存泄漏。 Event 类 简单的事件类包含一个 message 字段和构造方法用于传递事件数据。 MyActivity 在 onCreate() 中初始化 RxBus 和 ICompositeSubscription并订阅 Event 类型的事件。btnSendEvent 按钮点击后调用 RxBus.post() 发布一个事件。在 onDestroy() 中调用 subscriptionManager.unSubscribe() 来取消订阅。 重要概念 RxBus 的发布和订阅 RxBus 是一个事件总线通过 toObservable() 和 post() 方法实现发布和订阅事件。订阅 RxBus 后每当有事件发布时订阅者会接收到这个事件并做出响应。 ICompositeSubscription 的作用 ICompositeSubscription 管理多个订阅当 Activity 销毁时调用 unSubscribe() 取消所有订阅防止内存泄漏。在 Activity 中添加每个新的订阅并通过 putSubscription() 方法管理。
http://www.dnsts.com.cn/news/222504.html

相关文章:

  • 网站开发案例电子书3d建模设计
  • 什么是网站开发流程导购网站自己做电商
  • 购物网站怎么做有哪些做红色旅游景点的网站
  • 做餐饮的网站建设网站培训学校
  • 质感设计网站空调网站模板
  • 网站设计公司成都销售网站建设公司
  • 手机版网站快照如何做网站建设宀金手指花总十五
  • 一个网站是怎么做出来的尤溪住房和城乡建设局网站
  • 网站的栏目结构简图怎么做新手想开网店怎么开
  • 为什么做动漫短视频网站怎么推广自己做的网站
  • 全运网站的建设合肥网站建站报广告代理
  • 公司网站的建设sirna在线设计网站
  • 哈尔滨seo网站管理wordpress发文章api
  • 网站备案名称重复免费网站服务器2020
  • 网站建设需要提供哪些信息专业制作ppt
  • 网站维护服务费网站备案幕布照片尺寸
  • 北京网站制作网络推广公司wordpress图片实现下一篇文章
  • 做网站素材在哪里找天下网商自助建站系统
  • 六安市建设网站市场信息价在线制作海报网站
  • 江西工程建设信息网站东城网站制作公司
  • 小说网站怎么做防采集net网站开发是什么
  • 广告牌图片100例关键词推广seo
  • 比较好的室内设计网站广东省东莞阳光网
  • 医院网站优化策划网站开发客户提供素材
  • 什么网站可以做任务领赏金怎么用dw做简单网站
  • 免费网站整站模板下载开发人员选项怎么打开
  • 应用宝aso优化seo优化培训
  • 如何做类似优酷的视频网站怎样成立网站
  • 网站编程脚本语言文章网站后台
  • 做网站 包含详情页设计吗wordpress 去优酷广告插件