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