1
我可以使用iOS模拟器模拟后台抓取。是否有可能模拟到期,以便它可以调用到期处理程序?我试图使用无限循环并在模拟器上作为背景获取运行,但似乎没有触发它。Xamarin表单:iOS如何模拟后台抓取过期
task = UIApplication.SharedApplication.BeginBackgroundTask("bgEntityDownload",() =>
{
AppLogger.Instance.AddLog(AppLogLevel.Information,
nameof(BgProcess),
nameof(DownloadEntityFromServer),
"Background Fetch Expired", "");
App.CurrentDataStatus.HasSync = new EntityQueueBLL().HasData(siteId);
UIApplication.SharedApplication.EndBackgroundTask(task);
task = UIApplication.BackgroundTaskInvalid;
System.Diagnostics.Debug.WriteLine("Ending .....");
completionHandler?.Invoke(UIBackgroundFetchResult.NewData);
});
开始调试您的应用程序,一旦它运行后,将其放置到背景中(主屏幕按钮,在精神设备上或硬件/家中在Sim上),然后通过IDE中的运行/背景获取调用背景获取。你的过期处理程序应该在约30秒后被调用(假设你没有从PerformFetch方法返回(通过异步Task.Delay或其他东西挂起它) – SushiHangover
我循环它2小时,但应用程序死亡,而不是调用处理器当我放置了一个bulletpoint – LittleFunny
对不起,它使用你的Task.Delay方法,我不知道它应该在调用处理程序之前终止多长时间......当我放置断点时,调试器将达到该点并在后来的应用程序被杀害,看起来它不是最后一个很长的权利 – LittleFunny