android 连续发送,android - rxbus连续发送消息报错

我用rxbus连续发送大量消息报错

08-26 09:37:13.458 10637-10637/com.dituwuyou E/AndroidRuntime: FATAL EXCEPTION: main

Process: com.dituwuyou, PID: 10637

java.lang.IllegalStateException: Exception thrown on Scheduler.Worker thread. Add `onError` handling.

at rx.android.schedulers.LooperScheduler$ScheduledAction.run(LooperScheduler.java:112)

at android.os.Handler.handleCallback(Handler.java:739)

at android.os.Handler.dispatchMessage(Handler.java:95)

at android.os.Looper.loop(Looper.java:148)

at android.app.ActivityThread.main(ActivityThread.java:5417)

at java.lang.reflect.Method.invoke(Native Method)

at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)

at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

Caused by: rx.exceptions.OnErrorNotImplementedException: PublishSubject: could not emit value due to lack of requests

at rx.internal.util.InternalObservableUtils$ErrorNotImplementedAction.call(InternalObservableUtils.java:386)

at rx.internal.util.InternalObservableUtils$ErrorNotImplementedAction.call(InternalObservableUtils.java:383)

at rx.internal.util.ActionSubscriber.onError(ActionSubscriber.java:44)

at rx.observers.SafeSubscriber._onError(SafeSubscriber.java:152)

at rx.observers.SafeSubscriber.onError(SafeSubscriber.java:115)

at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.checkTerminated(OperatorObserveOn.java:276)

at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.call(OperatorObserveOn.java:219)

at rx.android.schedulers.LooperScheduler$ScheduledAction.run(LooperScheduler.java:107)

at android.os.Handler.handleCallback(Handler.java:739)

at android.os.Handler.dispatchMessage(Handler.java:95)

at android.os.Looper.loop(Looper.java:148)

at android.app.ActivityThread.main(ActivityThread.java:5417)

at java.lang.reflect.Method.invoke(Native Method)

at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)

at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

Caused by: rx.exceptions.MissingBackpressureException: PublishSubject: could not emit value due to lack of requests

at rx.subjects.PublishSubject$PublishSubjectProducer.onNext(PublishSubject.java:308)

at rx.subjects.PublishSubject$PublishSubjectState.onNext(PublishSubject.java:220)

at rx.subjects.PublishSubject.onNext(PublishSubject.java:73)

at rx.observers.SerializedObserver.onNext(SerializedObserver.java:92)

at rx.subjects.SerializedSubject.onNext(SerializedSubject.java:67)

at com.dituwuyou.widget.rxjava.RxBus.send(RxBus.java:45)

at com.dituwuyou.joint.CoorSocketService.messageReceived(CoorSocketService.java:51)

at com.dituwuyou.fayeclient.FayeClient.parseFayeMessage(FayeClient.java:535)

at com.dituwuyou.fayeclient.FayeClient.onMessage(FayeClient.java:390)

at com.dituwuyou.fayeclient.HybiParser.emitFrame(HybiParser.java:304)

at com.dituwuyou.fayeclient.HybiParser.start(HybiParser.java:130)

at com.dituwuyou.fayeclient.WebSocketClient$1.run(WebSocketClient.java:119)

at java.lang.Thread.run(Thread.java:818)

我的rxbus是这样定义的

import rx.Observable;

import rx.subjects.PublishSubject;

import rx.subjects.SerializedSubject;

import rx.subjects.Subject;

/**

* Created by xg on 2016/6/24.

* 消息传递(替换handler,eventbus)

*/

public class RxBus {

private static volatile RxBus mInstance;

private final Subject bus;

public RxBus() {

bus = new SerializedSubject<>(PublishSubject.create());

}

/**

* 单例模式RxBus

*

* @return

*/

public static RxBus getRxBusSingleton() {

RxBus rxBus2 = mInstance;

if (mInstance == null) {

synchronized (RxBus.class) {

rxBus2 = mInstance;

if (mInstance == null) {

rxBus2 = new RxBus();

mInstance = rxBus2;

}

}

}

return rxBus2;

}

/**

* 发送消息

*

* @param object

*/

public void send(Object object) {

bus.onNext(object);

}

/**

* 接收消息

*

* @return

*/

public Observable toObserverable() {

return bus;

}

}

这是第45行

bus.onNext(object);

应该是出现背压了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值