我们有带有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);
}
没有错误,但应用永久冻结