From f441a3c49f8b5cedee3e4def6fbb448ef40eb9cb Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期三, 10 六月 2020 14:46:58 +0800
Subject: [PATCH] Crabtree-ON 2020-06-10 基于最新HDL ON 优化问题,Crabtree-ONAPP部分功能同步修改优化调整 1. 增加大图片大文件上传处理. 2.远程连接交互提示,由原来的Loading修改成顶部Tip提示。 3.灯光全开、全关和场景控制多线程发送,和HDLON同样加锁处理。 4.Android ,判断移动网络失败,网络监测修复方法修改,后台前台切换优化。

---
 Crabtree/ON/Application.cs |  166 ++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 138 insertions(+), 28 deletions(-)

diff --git a/Crabtree/ON/Application.cs b/Crabtree/ON/Application.cs
index 6a5a33e..bf70068 100644
--- a/Crabtree/ON/Application.cs
+++ b/Crabtree/ON/Application.cs
@@ -1,5 +1,6 @@
 锘縰sing System;
 using Android;
+using Android.App;
 using Android.Content;
 using Android.Net;
 using Android.OS;
@@ -40,7 +41,7 @@
     /// 璁惧畾涓洪粯璁ゅ惎鍔ㄧ殑Application
     /// </summary>
     [Android.App.Application]
-    public class Application : Android.App.Application
+    public class Application : Android.App.Application, Android.App.Application.IActivityLifecycleCallbacks
     {
         static void reStartApp (Android.App.Application application)
         {
@@ -136,8 +137,16 @@
                     Utlis.WriteLine ("NetworkStateChanged " + obj);
                     UserConfig.Instance.internetStatus = obj;
                     UserConfig.Instance.SaveUserConfig ();
-                    //缃戠粶鍙樺寲閫氱煡
-                    EquipmentPublicClass.CheckLinkRemote (obj, false);
+                    ////缃戠粶鍙樺寲閫氱煡
+                    //EquipmentPublicClass.CheckLinkRemote (obj, false);
+
+                    //2020-06-10 鍚屾HDLON 淇敼浼樺寲
+                    if (!IsEnterBackground) {
+                        //缃戠粶鍙樺寲閫氱煡
+                        EquipmentPublicClass.CheckLinkRemote (obj, false);
+                    } else {
+                        Console.WriteLine ("HHH 缃戠粶鍙樺寲浣嗗浜庡悗鍙�");
+                    }
                 };
             };
             BaseActivity.RefreshUIAction += (activity) => {
@@ -160,7 +169,9 @@
             };
             HDLUtils.SetAuthoritiesName ("com.hdl.crabtreenew.fileProvider");
         }
+
         public static bool IsShowTip = true;
+
         void init ()
         {
             Shared.Application.Skin = UserConfig.Instance.CurrentSkinName;
@@ -193,48 +204,147 @@
                 }
             };
         }
+
         void checkSomeInfo ()
         {
             //RemoteInfo.Current.ReadMsgList (UserConfig.Instance.tokenID, IsShowTip);
             //JPushInterface.ClearAllNotifications (this);
 
             IsShowTip = true;
-            var status = isNetworkAvailable (this);
-            Utlis.WriteLine ("status!!!" + status);
+            //var status = isNetworkAvailable (this);
+            //Utlis.WriteLine ("status!!!" + status);
+            //int internetStatus = 0;
+            //if (status) {
+            //    var isWifi = isWifiConnected (this);
+            //    if (isWifi) {
+            //        internetStatus = 2;
+            //    } else {
+            //        internetStatus = 1;
+            //    }
+            //}
+            //Utlis.WriteLine ("");
+
+            //2020-06-10 淇敼缃戠粶鍒ゆ柇鍑洪敊闂
             int internetStatus = 0;
-            if (status) {
-                var isWifi = isWifiConnected (this);
-                if (isWifi) {
-                    internetStatus = 2;
-                } else {
-                    internetStatus = 1;
-                }
-            }
-            Utlis.WriteLine ("");
+            internetStatus = NetworkUtils.CheckConnectedMode ();
+            Console.WriteLine ("internetStatus锛�" + internetStatus);
+
             Shared.SimpleControl.EquipmentPublicClass.CheckLinkRemote (internetStatus, false);
         }
 
-        bool isNetworkAvailable (Context context)
+        //bool isNetworkAvailable (Context context)
+        //{
+        //    var cm = (ConnectivityManager)context.GetSystemService (ConnectivityService);
+        //    if (cm == null || cm.ActiveNetworkInfo == null) {
+        //        return false;
+        //    } else {
+        //        return cm.ActiveNetworkInfo.IsAvailable;
+        //    }
+        //}
+
+        //bool isWifiConnected (Context context)
+        //{
+        //    if (context != null) {
+        //        var mConnectivityManager = (ConnectivityManager)context.GetSystemService
+        //        (ConnectivityService);
+        //        var mWiFiNetworkInfo = mConnectivityManager.GetNetworkInfo (ConnectivityType.Wifi);
+        //        if (mWiFiNetworkInfo != null) {
+        //            return mWiFiNetworkInfo.IsAvailable;
+        //        }
+        //    }
+        //    return false;
+        //}
+
+
+        public void OnActivityCreated (Activity activity, Bundle savedInstanceState)
         {
-            var cm = (ConnectivityManager)context.GetSystemService (ConnectivityService);
-            if (cm == null || cm.ActiveNetworkInfo == null) {
-                return false;
-            } else {
-                return cm.ActiveNetworkInfo.IsAvailable;
+
+        }
+
+        public void OnActivityDestroyed (Activity activity)
+        {
+            //throw new NotImplementedException ();
+        }
+
+        public void OnActivityPaused (Activity activity)
+        {
+            //throw new NotImplementedException ();
+        }
+
+        public void OnActivityResumed (Activity activity)
+        {
+            //throw new NotImplementedException ();
+        }
+
+        public void OnActivitySaveInstanceState (Activity activity, Bundle outState)
+        {
+            //throw new NotImplementedException ();
+        }
+
+        public void OnActivityStarted (Activity activity)
+        {
+            //throw new NotImplementedException ();
+
+            mCount++;
+            if (mCount == 1) {
+                Console.WriteLine ("HHH OnActivityStarted锛歠oreground");
+                BusSocketStart ();
             }
         }
 
-        bool isWifiConnected (Context context)
+        public void OnActivityStopped (Activity activity)
         {
-            if (context != null) {
-                var mConnectivityManager = (ConnectivityManager)context.GetSystemService
-                (ConnectivityService);
-                var mWiFiNetworkInfo = mConnectivityManager.GetNetworkInfo (ConnectivityType.Wifi);
-                if (mWiFiNetworkInfo != null) {
-                    return mWiFiNetworkInfo.IsAvailable;
+
+            mCount--;
+            if (mCount == 0) {
+                Console.WriteLine ("HHH OnActivityStopped锛� background");
+                BusSocketStop ();
+            }
+        }
+
+
+        public override void OnTerminate ()
+        {
+            base.OnTerminate ();
+            UnregisterActivityLifecycleCallbacks (this);
+        }
+
+        int mCount;
+
+        /// <summary>
+        /// 鏄惁杩涘叆鍚庡彴
+        /// </summary>
+        public bool IsEnterBackground = false;
+
+        DateTime closeTime = DateTime.MinValue;
+
+        /// <summary>
+        /// BusSocketStop
+        /// </summary>
+        void BusSocketStop ()
+        {
+            IsEnterBackground = true;
+            Shared.BusSocket.Stop ();
+            closeTime = DateTime.Now;
+        }
+
+
+        /// <summary>
+        /// BusSocketStart
+        /// </summary>
+        void BusSocketStart ()
+        {
+            IsEnterBackground = false;
+
+            if (closeTime == DateTime.MinValue) {
+                closeTime = DateTime.Now;
+            } else if (closeTime.AddSeconds (10) < DateTime.Now) {
+                if (CommonPage.IsRemote) {
+                    SmartHome.MqttCommon.DisConnectRemoteMqttClient("closeTime");
                 }
             }
-            return false;
+
+            Shared.BusSocket.Start (6000);
         }
 
     }

--
Gitblit v1.8.0