From 97692c01e5103eada2ffa5da0c529b0e375a46a4 Mon Sep 17 00:00:00 2001
From: 18034727885 <973609879@qq.com>
Date: 星期五, 14 八月 2026 16:57:27 +0800
Subject: [PATCH] 修复问题
---
rxnetty/src/main/java/cn/sinata/rxnetty/CoreService.java | 32 ++++++++++++++++++++++----------
1 files changed, 22 insertions(+), 10 deletions(-)
diff --git a/rxnetty/src/main/java/cn/sinata/rxnetty/CoreService.java b/rxnetty/src/main/java/cn/sinata/rxnetty/CoreService.java
index b756734..7b954b4 100644
--- a/rxnetty/src/main/java/cn/sinata/rxnetty/CoreService.java
+++ b/rxnetty/src/main/java/cn/sinata/rxnetty/CoreService.java
@@ -28,6 +28,7 @@
import io.reactivex.netty.channel.ObservableConnection;
import rx.Observable;
import rx.Subscriber;
+import rx.android.schedulers.AndroidSchedulers;
import rx.functions.Action1;
import rx.functions.Func1;
import rx.schedulers.Schedulers;
@@ -130,6 +131,11 @@
init();
NetStateReceiver.registerNetworkStateReceiver(this);
+ // 服务重复启动时先移除旧观察者,避免重复重连回调 由AI生成
+ if (mNetChangeObserver != null) {
+ // 从网络监听器移除旧观察者实例 由AI生成
+ NetStateReceiver.removeRegisterObserver(mNetChangeObserver);
+ }
mNetChangeObserver = new NetChangeObserver() {
@Override
public void onNetConnected(NetUtils.NetType type) {
@@ -196,6 +202,8 @@
public void onDestroy() {
super.onDestroy();
isDestroy = true;
+ // 服务销毁时移除网络观察者,避免静态列表持有 Service 引用 由AI生成
+ NetStateReceiver.removeRegisterObserver(mNetChangeObserver);
if (wakeLockUtils!=null)
wakeLockUtils.releaseWakeLock();
NetStateReceiver.unRegisterNetworkStateReceiver(this);
@@ -304,16 +312,20 @@
return;
}
//reconnect
- Observable.timer(3, TimeUnit.SECONDS).subscribe(new Action1<Long>() {
- @Override
- public void call(Long aLong) {
- if (mConnection != null) {
- mConnection.close();
- mConnection = null;
- }
- connectServer();
- }
- });
+ Observable.timer(3, TimeUnit.SECONDS)
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new Action1<Long>() {
+ @Override
+ public void call(Long aLong) {
+ if (mConnection != null) {
+ mConnection.close();
+ mConnection = null;
+ }
+ Logger.i("CoreService", "sendHeart_websocket长连接断开,重新连接");
+ connectServer();
+ }
+ }, Throwable::printStackTrace);
}
--
Gitblit v1.7.1