单击硬件电源按钮后,Android应用程序冻结

我们有带有cocossharp模板的xamarin跨平台项目。唯一的问题是使用该应用程序时单击电源按钮并再次单击以打开手机后,该应用程序将冻结,而再次使用该应用程序的唯一方法是最小化并重新打开。

我尝试修复oncrete和onsleep方法。 https://forums.xamarin.com/discussion/38489/preventing-sleep-mode-keeping-the-app-alive

在App.xaml.cs上

 protected override void OnStart()
        {

            // Handle when your app starts
            UserService.AutomaticLogin();
            var access = Connectivity.Networkaccess;
            if (access == Networkaccess.Internet)
                InternetServices.InternterConnected = true;
            else
                InternetServices.InternterConnected = false;

            PreLoadPopUp();
        }

        protected override void OnSleep()
        {
            base.OnSleep();
            Debug.WriteLine(">>> App on sleep");
            if (Device.RuntimePlatform == Device.Android)
            {

            }
            GamePage.CocosSharpView.Paused = true;
            Debug.WriteLine(">>> Cocosharp view status: " + GamePage.CocosSharpView.Paused);
            Application.Current.SavePropertiesAsync();

            // Handle when your app sleeps
        }

        protected override void OnResume()
        {
            base.OnResume();

            Debug.WriteLine(">>> App on resume");
            if (Device.RuntimePlatform == Device.Android)
            {

            }
            GamePage.CocosSharpView.Paused = false;
            App.OpenCamera = false;
            Debug.WriteLine(">>> Cocosharp view status: " + GamePage.CocosSharpView.Paused);
            // Handle when your app resumes
        }

在Mainactivity.cs

[Obsolete]
        protected override void OnCreate(Bundle savedInstanceState)
        {

            TabLayoutResource = Resource.Layout.Tabbar;
            ToolbarResource = Resource.Layout.Toolbar;

            App.ScreenHeight = (int)(Resources.DisplayMetrics.HeightPixels / Resources.DisplayMetrics.Density);
            App.ScreenWidth = (int)(Resources.DisplayMetrics.WidthPixels / Resources.DisplayMetrics.Density);

            base.OnCreate(savedInstanceState);
            Rg.Plugins.Popup.Popup.Init(this,savedInstanceState);
            Xamarin.Essentials.Platform.Init(this,savedInstanceState);
            global::Xamarin.Forms.Forms.Init(this,savedInstanceState);
            CrossCurrentactivity.Current.Init(this,savedInstanceState);
            CrossCurrentactivity.Current.activity = this;
            MobileAds.Initialize(ApplicationContext,App.AdAppIdAndroid);
            base.Window.setflags(WindowManagerflags.KeepScreenOn,WindowManagerflags.KeepScreenOn);
            LoadApplication(new App());


        }
        public override void OnRequestPermissionsResult(int requestCode,string[] permissions,[GeneratedEnum] Android.Content.PM.Permission[] grantResults)
        {
            Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode,permissions,grantResults);

            base.OnRequestPermissionsResult(requestCode,grantResults);
        }

没有错误,但应用永久冻结

squirrel917878 回答:单击硬件电源按钮后,Android应用程序冻结

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3167038.html

大家都在问