Android RXjava实现子线程做耗时操作,比new Thread和handler更香

news/2024/12/20 1:10:23/

1.首先是在build.gradle里面引用下面两个库
implementation ‘io.reactivex.rxjava2:rxandroid:2.0.1’
implementation ‘io.reactivex.rxjava2:rxjava:2.0.7’
2.创建CompositeDisposable 。CompositeDisposable是一个存放Disposable的集合,它是一个容器
CompositeDisposable compositeDisposable = new CompositeDisposable();
3.创建Observable
//创建子线程
Observable operationObservable = Observable.create(new ObservableOnSubscribe() {
@Override
public void subscribe(ObservableEmitter emitter) throws Exception {
//耗时操作代码todo
emitter.onNext(1);
emitter.onComplete();
}
}).subscribeOn(Schedulers.io());//线程调度器
operationObservable.subscribe(new io.reactivex.Observer() {
@Override
public void onSubscribe(Disposable d) {
compositeDisposable.add(d);
}
@Override
public void onNext(Integer integer) {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
4.销毁容器
@Override
protected void onDestroy() {
super.onDestroy();
compositeDisposable.clear();
}


http://www.ppmy.cn/news/1556525.html

相关文章

汽车SoC芯片及其安全岛设计与未来发展趋势(学习笔记)

SoC系列已发布多篇文章,之前应该发布到4.3章节,后续还有包含常见汽车SoC,SoC评价指标,产业链及发展趋势等,均见已发布完整版本付费资源,链接如下: 汽车SoC芯片及其安全岛设计与未来发展趋势&am…

linkedList add方法源码分析

特点:它基于双向链表实现 双向链表结构:每个节点都包含数据部分、前驱指针(指向前一个节点)和后继指针(指向后一个节点)在链表中间插入和删除元素时非常高效查询性能较低:因为它需要从链表的头…

flask_sqlalchemy event监听查询事件

flask_sqlalchemy event监听查询事件 在Flask-SQLAlchemy中,可以使用事件监听器来监控查询事件。这可以通过listens_for(ModelClass, “event_name”)装饰器来实现,其中ModelClass是你想要监控的模型类,event_name是你想要监控的事件名称&…

运维 mysql、redis 、RocketMQ性能排查

MySQL查看数据库连接数 1. SHOW STATUS命令-查询当前的连接数 MySQL 提供了一个 SHOW STATUS 命令,可以用来查看服务器的状态信息,包括当前的连接数。 SHOW STATUS LIKE Threads_connected;这个命令会返回当前连接到服务器的线程数,即当前…

推送本地仓库到远程git仓库

目录 推送本地仓库到远程git仓库1.1修改本地仓库用户名1.2 push 命令1.3远程分支查看 推送本地仓库到远程git仓库 删除之前的仓库中的所有内容,从新建库,同时创建一个 A.txt 文件 清空原有的远程仓库内容,重新创建一个新的仓库,…

[x86 ubuntu22.04]投影模式选择“只使用外部”,外部edp屏幕无背光

1 问题描述 CPU:G6900E OS:ubuntu22.04 Kernel:6.8.0-49-generic 系统下有两个一样的 edp 屏幕,投影模式选择“只使用外部”,内部 edp 屏幕灭,外部 edp 屏幕无背光。DP-1 是外部 edp 屏幕,eDP-1…

Redis内存淘汰策略有哪些

Redis内存淘汰策略有哪些 简单来说: volatile-lru(least recently used):从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰 volatile-ttl:-------------------要…

Web安全攻防入门教程——hvv行动详解

Web安全攻防入门教程 Web安全攻防是指在Web应用程序的开发、部署和运行过程中,保护Web应用免受攻击和恶意行为的技术与策略。这个领域不仅涉及防御措施的实现,还包括通过渗透测试、漏洞挖掘和模拟攻击来识别潜在的安全问题。 本教程将带你入门Web安全攻…