我的应用程序(有时)因暂停而醒来(仅限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
中重新启动应用程序。
答案 0 :(得分:1)
看起来答案只是确保您不会等待任何api调用返回,并确保没有阻止OnAppearing
上的ui线程。检查可能导致此问题的iOS
方法中的登录。
只需在5分钟后将我的应用程序重置回初始化页面即可解决。我找到了互联网上的某个地方(不记得我发布的地方)ClientsViewController
允许你的应用在睡眠后继续执行10分钟(完成流程)。所以我认为在此之后的任何时候,它会为更紧迫的任务重新分配内存,导致应用程序无法从睡眠时的确切位置继续执行所需的内容。