
rxjava的observable订阅时在oncomplete被调用时取消订阅
在非android环境中使用rxjava2.x时,如果需要在observable的oncomplete被调用时取消订阅,可以采用以下方法:
在oncomplete中设置completablefuture.complete通知调用方已结束:
陌言AI
陌言AI是一个一站式AI创作平台,支持在线AI写作,AI对话,AI绘画等功能
下载
table.subscribe(tableins -> {
// system.out.println("-------information-------");
system.out.println(tableins);
}, throwable -> {
throw new schemaexportexception(throwable);
}, new action() {
@override
public void run() throws exception {
system.out.println("complete");
// 在这里取消订阅
completablefuture.complete();
}
});调用方可以根据completablefuture来判断observable是否已完成:
立即学习“Java免费学习笔记(深入)”;
long startStamp = System.currentTimeMillis();
// Flowable
Flowable
tableFlowable = result.getAll(dbName.get(), strategy).flatMap(new Function>() {
@Override
public Publisher apply(@NonNull Table table) throws Exception {
return result.getTableColumn(table).flatMap(new Function, SingleSource>() {
@Override
public SingleSource apply(@NonNull List columns) throws Exception {
return Single.just(table.fillColumn(columns));
}
}).flatMapPublisher(new Function>() {
@Override
public Publisher extends Table> apply(@NonNull Table table) throws Exception {
return Flowable.just(table);
}
});
}
});
Disposable disposable = null;
try {
disposable = out.flush(info, tableFlowable);
CompletableFuture future = out.getFuture();
while (!future.isDone()) {
logger.info("[ERE-Flowable]未完成,线程休眠1秒");
Thread.currentThread().sleep(1000, 0);
}
String result = future.get();
logger.info("[ERE-Flowable]完成, 结果:" + result);
if (result.equals("OK")) {
long finishStamp = System.currentTimeMillis();
clearHander(disposable, "[ERE-Flowable]RxJava disposed because complete, WithTime: " + (finishStamp - startStamp));
}
} catch (Exception e) {
clearHander(disposable, "[ERE-Flowable]RxJava disposed has Exception: " + e.getMessage());
}
本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
android开发三大框架
android开发三大框架是XUtil框架、volley框架、ImageLoader框架。本专题为大家提供android开发三大框架相关的各种文章、以及下载和课程。
android是什么系统
Android是一种功能强大、灵活可定制、应用丰富、多任务处理能力强、兼容性好、网络连接能力强的操作系统。本专题为大家提供android相关的文章、下载、课程内容,供大家免费下载体验。
android权限限制怎么解开
android权限限制可以使用Root权限、第三方权限管理应用程序、ADB命令和Xposed框架解开。详细介绍:1、Root权限,通过获取Root权限,用户可以解锁所有权限,并对系统进行自定义和修改;2、第三方权限管理应用程序,用户可以轻松地控制和管理应用程序的权限;3、ADB命令,用户可以在设备上执行各种操作,包括解锁权限;4、Xposed框架,用户可以在不修改系统文件的情况下修改应用程序的行为和权限。
android重启应用的方法有哪些
android重启应用有通过Intent、PendingIntent、系统服务、Runtime等方法。本专题为大家提供Android相关的文章、下载、课程内容,供大家免费下载体验。
Android语音播放功能实现方法
实现方法有使用MediaPlayer实现、使用SoundPool实现两种。可以根据具体的需求选择适合的方法进行实现。想了解更多语音播放的相关内容,可以阅读本专题下面的文章。
无人机驾驶证报考 uom民用无人机综合管理平台官网
无人机驾驶证(CAAC执照)报考需年满16周岁,初中以上学历,身体健康(矫正视力1.0以上,无严重疾病),且无犯罪记录。个人需通过民航局授权的训练机构报名,经理论(法规、原理)、模拟飞行、实操(GPS/姿态模式)及地面站训练后考试合格,通常15-25天拿证。
网站特效
/
网站源码
/
网站素材
/
前端模板