wxr
2020-11-04 e6a26ee148587327478d9a82624a820c907b6e16
HDL-ON_Android/Application.cs
@@ -1,5 +1,7 @@
using System;
using System.Net;
using Android;
using Android.App;
using Android.Content;
using Android.Net;
using Android.OS;
@@ -13,7 +15,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)
        {
@@ -33,56 +35,86 @@
            }
            base.OnCreate();
            RegisterActivityLifecycleCallbacks(this);
            initAll();
        }
        /// <summary>
        /// 所有初始化全部在这个方法实现
        /// </summary>
        void initAll()
        {
            //Locale locale1 = Locale.Default;
            //var localeList = Resources.Configuration.Locale;
            //if (localeList.Language == "zh")
            //{
            //    Language.CurrentLanguage = "Chinese";
            //}
            string[] permissions = new string[] { Manifest.Permission.WriteExternalStorage, Manifest.Permission.RecordAudio,
            Manifest.Permission.Camera, Manifest.Permission.ProcessOutgoingCalls, Manifest.Permission.GetAccounts};
            var version = Build.VERSION.SdkInt + "";
            Console.WriteLine("Build.VERSION.SdkInt : " + version);
            //Android.Support.V4.App.ActivityCompat.RequestPermissions (BaseActivity., permissions, 321);
            BaseActivity.IsHideVirualButtons = true;
            init();
            BaseActivity.OnCreateActoin += (activity, application) => {
            BaseActivity.OnCreateActoin += (activity, application) =>
            {
                Language.CurrentLanguage = "Chinese";
                Locale locale1 = Locale.Default;
                var localeList = Resources.Configuration.Locale;
                if (localeList.Language == "zh")
                {
                    Language.CurrentLanguage = "Chinese";
                }
                BaseActivity.NetworkStateChanged += (int obj) => {
                BaseActivity.NetworkStateChanged += (int obj) =>
                {
                    if (!IsEnterBackground)
                    {
                        //BusSocket.Stop();
                        new System.Threading.Thread(() =>
                        {
                            System.Threading.Thread.Sleep(1000);
                            //BusSocket.Start();
                        })
                        { IsBackground = true }.Start();
                    }
                    else
                    {
                        Console.WriteLine("HHH 网络变化但处于后台");
                    }
                };
            };
            BaseActivity.RefreshUIAction += (activity) => {
            BaseActivity.RefreshUIAction += (activity) =>
            {
                MainPage.Show();
                checkSomeInfo();
            };
            BaseActivity.OnResumeAction += (activity) => {
            BaseActivity.OnResumeAction += (activity) =>
            {
                checkSomeInfo();
                new HDL_ON.UI.AppUnlockPage().LoadPage();
            };
            BaseActivity.OnDestroyAction += (activity) => {
            BaseActivity.OnDestroyAction += (activity) =>
            {
                Console.WriteLine("OnDestroyAction");
                BusSocket.Stop();
                //BusSocket.Stop();
                OnAppConfig.Instance.unlockTime = DateTime.Now;
            };
            HDLUtils.SetAuthoritiesName("com.hdl.onpro.fileProvider");
            //Shared.Application.IsGpsEnable = true;
            Shared.Application.LocationAction = (arg1, arg2) =>
            {
                Shared.Application.LocationAction = null;
                new HDL_ON.DAL.Server.HttpServerRequest().GetCityInfo(arg1.ToString(), arg2.ToString());
                MainPage.Log($"经纬度:::{arg1}:{arg2}");
            };
        }
        public static bool IsShowTip = true;
        void init()
        {
            //手机名称 Android.OS.Build.Manufacturer;
        }
        void checkSomeInfo()
        {
@@ -139,5 +171,88 @@
            }
            return false;
        }
        public void OnActivityCreated(Activity activity, Bundle savedInstanceState)
        {
        }
        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:foreground");
                BusSocketStart();
            }
        }
        public void OnActivityStopped(Activity activity)
        {
            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;
        /// <summary>
        /// BusSocketStop
        /// </summary>
        void BusSocketStop()
        {
            IsEnterBackground = true;
            //BusSocket.Stop();
            OnAppConfig.Instance.unlockTime = DateTime.Now;
        }
        /// <summary>
        /// BusSocketStart
        /// </summary>
        void BusSocketStart()
        {
            IsEnterBackground = false;
            //BusSocket.Start();
        }
    }
}
}