ios - Xamarin Forms iOS 在唤醒时卡住

标签 ios xamarin.forms

我的应用程序(有时)在从暂停状态唤醒时卡住(仅限 iOS)。无论是在锁定一段时间后唤醒手机,还是在另一个应用程序中运行任务后返回应用程序。

使用 Xamarin.Forms 2.5.0.X

无法调试,因为 Visual Studio 在您锁定屏幕或将应用移至后台(主页按钮)时断开与设备的连接。

有没有其他人有过这种行为的经验?

我已经在我的共享项目的 App.xaml.csOnSleepOnResume 方法中设置了一些东西,希望能解决这个问题,但它似乎不起作用。

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/

相关文章:

c# - Xamarin Forms 相对布局不会堆叠

android - Golang mobile 可以和 React-Native 一起使用吗?

iphone - 5 秒无事件后自动删除 imageview

c# - Xamarin 绑定(bind)从列表中动态创建的按钮

c# - Xamarin 按钮命令(在 ListView.ItemTemplate 内部)未触发

c# - 当我们在 Xamarin.Forms Android 应用程序中将目标 API 版本更改为 26 时无法读取/写入文件

ios - 在ios中设置自定义UI的大小

objective-c - 有谁知道如何检测用户是否取消了 "In App"尝试安装另一个 App 版本

ios - 在 Swift 中动画缩放和调整按钮大小的最佳方法?

c# - Intellisense 不适用于带有 Xamarin 的 Visual Studio 2015 中的 .cs 文件