我的应用程序(有时)在从暂停状态唤醒时卡住(仅限 iOS)。无论是在锁定一段时间后唤醒手机,还是在另一个应用程序中运行任务后返回应用程序。
使用 Xamarin.Forms 2.5.0.X
无法调试,因为 Visual Studio
在您锁定屏幕或将应用移至后台(主页按钮)时断开与设备的连接。
有没有其他人有过这种行为的经验?
我已经在我的共享项目的 App.xaml.cs
的 OnSleep
和 OnResume
方法中设置了一些东西,希望能解决这个问题,但它似乎不起作用。
protected override void OnSleep()
{
StorageHelper.SetSleepTime(DateTime.Now);
StorageHelper.PersistStorage();
ApiHelper.CurrentAccess.CancelAllRequests();
}
protected override void OnResume()
{
var access = ApiHelper.RefreshApiAccess();
access.UseCredentialGenerator = true;
var sleepTime = StorageHelper.GetSleepTime();
if (!sleepTime.HasValue || DateTime.Now.Subtract(sleepTime.Value).TotalMinutes >= MinutesToSleepForReset)
{
MainPage = new TransitionNavigationPage(new StartPage());
StorageHelper.RemoveSleepTime();
}
else
{
NavigationHelper.UpdateCartItemCount();
}
}
SetSleepTime
仅存储调用 OnSleep 方法的时间,因此如果它已经睡了超过 5 分钟,我基本上可以在 OnResume
.
最佳答案
看起来答案只是确保您没有等待任何 api 调用返回,并确保没有任何东西阻塞 OnResume
上的 ui 线程。检查可能导致此问题的 OnAppearing
方法中的登录。
我的问题似乎是在 5 分钟后将我的应用程序重置回我的初始化页面就解决了。我在互联网上的某个地方(不记得我会在哪里发布它)发现 iOS
允许您的应用程序在 sleep 后继续执行 10 分钟(以完成进程)。所以我认为在那之后的任何时候,它都会为更紧迫的任务重新分配内存,导致应用程序无法从它休眠时的确切位置继续执行所需的内容。
关于ios - Xamarin Forms iOS 在唤醒时卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49639381/