From bd6a8872438a35d47821c5d5da7fe149e5fed3ab Mon Sep 17 00:00:00 2001
From: lmw <125975490@qq.com>
Date: 星期三, 21 六月 2023 09:53:36 +0800
Subject: [PATCH] 处理收不到广播

---
 rxnetty/src/main/java/cn/sinata/rxnetty/CoreService.java |   44 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 44 insertions(+), 0 deletions(-)

diff --git a/rxnetty/src/main/java/cn/sinata/rxnetty/CoreService.java b/rxnetty/src/main/java/cn/sinata/rxnetty/CoreService.java
index cc5132b..b1b70df 100644
--- a/rxnetty/src/main/java/cn/sinata/rxnetty/CoreService.java
+++ b/rxnetty/src/main/java/cn/sinata/rxnetty/CoreService.java
@@ -5,8 +5,12 @@
 import android.content.Intent;
 import android.graphics.Color;
 import android.os.Build;
+import android.os.Handler;
 import android.os.IBinder;
+import android.text.format.DateFormat;
+import android.text.format.DateUtils;
 import android.util.Log;
+import android.widget.Toast;
 
 import androidx.annotation.Nullable;
 import androidx.core.app.NotificationCompat;
@@ -14,6 +18,8 @@
 import java.nio.charset.Charset;
 import java.util.ArrayList;
 import java.util.concurrent.TimeUnit;
+
+import cn.sinata.rxnetty.Cache.CacheUtil;
 import cn.sinata.rxnetty.netStatus.NetChangeObserver;
 import cn.sinata.rxnetty.netStatus.NetStateReceiver;
 import cn.sinata.rxnetty.netStatus.NetUtils;
@@ -73,6 +79,7 @@
             }
         });
         initCheckOb();
+        initCheckObNUll();
     }
 
     public void checkState() {
@@ -80,14 +87,35 @@
                 || !mConnection.getChannel().isActive()
                 || !mConnection.getChannel().isWritable()) {
             reConnect();
+        }else {
+//            String s = CacheUtil.get().getAsString("reConnect");
+//            s = s + "###"+ "已连接";
+//            CacheUtil.get().put("reConnect",s);
         }
     }
+
+    public void checkStateNull(){
+//        String s = CacheUtil.get().getAsString("reConnect");
+//        s = s + "###"+ "checkStateNull";
+//        CacheUtil.get().put("reConnect",s);
+        reConnect();
+    }
+
 
     void initCheckOb() {
         NettyClient.getInstance().setOnCheckListener(new OnCheckListener() {
             @Override
             public void doCheck() {
                 checkState();
+            }
+        });
+    }
+
+    void initCheckObNUll(){
+        NettyClient.getInstance().setOnCheckNullListener(new OnCheckListenerNull() {
+            @Override
+            public void doCheck() {
+                checkStateNull();
             }
         });
     }
@@ -248,19 +276,35 @@
 
     private void reConnect() {
         if (isDestroy) {
+//            String s = CacheUtil.get().getAsString("reConnect");
+//            s = s + "###"+ "server已死";
+//            CacheUtil.get().put("reConnect",s);
             return;
         }
         //reconnect
+//        String s = CacheUtil.get().getAsString("reConnect");
+//        s = s + "###"+ "倒计时3秒";
+//        CacheUtil.get().put("reConnect",s);
+
         Observable.timer(3, TimeUnit.SECONDS).subscribe(new Action1<Long>() {
             @Override
             public void call(Long aLong) {
+//                String s = CacheUtil.get().getAsString("reConnect");
+//                s = s + "###"+ "倒计时结束";
+//                CacheUtil.get().put("reConnect",s);
                 if (mConnection != null) {
                     mConnection.close();
                     mConnection = null;
                 }
+
                 Log.i("CoreService", "sendHeart_websocket长连接断开,重新连接");
                 connectServer();
             }
+
+            @Override
+            protected void finalize() throws Throwable {
+                super.finalize();
+            }
         });
 
     }

--
Gitblit v1.7.1