android – 停止Observable.interval并发送onComplete

weixin_38048397 2019-09-12 11:09:30
我有以下几种情况:我希望有一个计时器计数,直到我取消订阅但我希望在我停止使用最后一个值时得到onComplete信号. observable = Observable.interval(1, TimeUnit.SECONDS) .observeOn(AndroidSchedulers.mainThread()) .doOnNext(new Action1<Long>() { @Override public void call(Long aLong) { String duration = Utils.getDuration(startedTrackingTime, new Date().getTime()); view.updateDurationTextView(duration); } }); subscription = observable.subscribe(); public void stopMission() { observable.doOnCompleted(new Action0() { @Override public void call() { Log.d(TAG, "onCompleted: " + "timer"); } }); subscription.unsubscribe(); doOnComplete从未调用过.可以用RxJava做到吗?我觉得我做错了什么?
...全文
1265 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38062043 2019-09-12
  • 打赏
  • 举报
回复
@MatBos是正确的,如果你取消订阅,你不能指望完成排放.但是,如果要提前停止observable并使其完成,则可以将间隔与PublishSubject合并,并在需要时通过主题发送停止消息: PublishSubject<Long> subject = PublishSubject.create(); subject .mergeWith(Observable.interval(1, TimeUnit.SECONDS)) .takeWhile(n -> n != -1) .doOnNext(System.out::println) .doOnCompleted(() -> System.out.println("completed")) .subscribe(); Thread.sleep(3100); subject.onNext(-1L); Thread.sleep(2000); 得到: 0 1 2 completed
交流母线型风光储氢耦合系统多单元协同调控与负荷适配特性仿真研究(Simulink仿真实现)内容概要:本文围绕交流母线型风光储氢耦合系统,研究其多单元协同调控与负荷适配特性,重点通过Simulink仿真平台构建系统模型,实现风力发电、光伏发电、储能系统及质子交换膜(PEM)电解水制氢系统在共交流母线结构下的协调运行。研究涵盖系统整体架构设计、各单元动态建模、能量管理策略制定以及多源协同控制逻辑,旨在优化系统能量流动,提升可再生能源消纳能力,并实现对负荷需求的精准响应。仿真结果验证了所提协同调控策略在提高系统稳定性、降低弃风弃光率和增强负荷适配性方面的有效性。; 适合人群:具备电力系统、新能源发电、综合能源系统等相关背景,熟悉Simulink仿真工具的研究生、科研人员及工程技术人员。; 使用场景及目标:①研究高比例可再生能源接入下的多能互补与协同控制机制;②掌握风光储氢耦合系统的建模与仿真方法;③探索氢能作为长时储能手段在电力系统中的应用潜力与调控策略。; 阅读建议:在学习过程中应重点关注系统架构设计与控制逻辑的实现细节,结合Simulink模型深入理解各单元的交互关系,并通过调整参数和工况进行仿真验证,以加深对多单元协同调控机理的理解。

479

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧