ios - 3分钟后,xamarin.ios 阻止iOS杀死我的应用程序

  显示原文与译文双语对照的内容
66 0

To avoid implementing整个导航堆栈的持久缓存逻辑i 即使是在后台,也要保留应用程序"alive"( 至少在 2小时),这样当用户重新打开应用程序时,它就在睡眠之前。

我尝试了一个背景任务:

_timerBackgroundTaskId = UIApplication.SharedApplication.BeginBackgroundTask(() =>
{
//Run some dummy code here. Shouldn´t this prevent the task from actually stopping?
 var remaining = UIApplication.SharedApplication.BackgroundTimeRemaining;
 this.Log().Debug($"Expiration. Remaining: {remaining}. Timer seconds left: {_secondsLeft}");
});
//I´m actually using the timer for something :)
_nsTimer = NSTimer.CreateRepeatingScheduledTimer(TimeSpan.FromSeconds(1), delegate { TimerTick(); });
//later on (after 3 minutes)
UIApplication.SharedApplication.EndBackgroundTask(_timerBackgroundTaskId.Value);

无论我尝试什么,3分钟后iOS会终止应用程序。

任何建议?

时间:原作者:0个回答

55 5

解决我的问题的方法很简单,只做了

在后台运行某些任务时,3分钟限制仅适用于 ( 例如:UIApplication.SharedApplication.BeginBackgroundTask) 防止电池耗尽。

在我的例子中,我正在使用一个后台任务来保持倒计时/警报工作。

  • 在 3分钟前结束任务
  • 实现一个还原策略。iOS本身提供了一个内置在 API for中的
原作者:
...