Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何防止iOS 13杀死后台应用程序?_C#_Ios_Xamarin_Background_Kill - Fatal编程技术网

C# 如何防止iOS 13杀死后台应用程序?

C# 如何防止iOS 13杀死后台应用程序?,c#,ios,xamarin,background,kill,C#,Ios,Xamarin,Background,Kill,我的应用程序在Xamarin forms iOS中。 当我启动计时器进行训练,并在1或2分钟后进入后台时,应用程序将重新启动,而不是打开同一页面 我已经添加了一个计时器,它可以与后台tasl一起持续运行,并且在iOS 13之前工作良好 如果有人能帮我在iOS 13中实现它,下面是我的代码snippest nint taskId = UIApplication.SharedApplication.BeginBackgroundTask("BackgroundWorkTime

我的应用程序在Xamarin forms iOS中。 当我启动计时器进行训练,并在1或2分钟后进入后台时,应用程序将重新启动,而不是打开同一页面

我已经添加了一个计时器,它可以与后台tasl一起持续运行,并且在iOS 13之前工作良好

如果有人能帮我在iOS 13中实现它,下面是我的代码snippest

            nint taskId = UIApplication.SharedApplication.BeginBackgroundTask("BackgroundWorkTimer", OnExpiration);
            timer = NSTimer.CreateRepeatingScheduledTimer(2, (obj) => { });
            UIApplication.SharedApplication.EndBackgroundTask(taskId);

            void OnExpiration()
            {
            }

在添加上述代码后,它可以在ios 12中工作,在didfinish启动方法中的my AppDelegate.cs中工作。但现在在iOS 13中,这是停止工作。

您不能在后台无限期地执行,也不需要这样做。你应该解释你想要达到的目标。可能有一种更好、电池更友好的方式。是的,我的应用程序是健身应用程序,所以当用户完成训练工作集应用程序时,会给计时器1到2分钟的休息时间,然后是下一个工作集,而这个休息时间用户会去后台检查其他应用程序,所以当ios 13从backgroundWell关闭应用程序时,用户会从头开始打开应用程序,你无法阻止操作系统杀死给定的应用程序!听起来你好像在训练结束后2分钟内安排了一个本地通知。无论你的应用程序处于何种状态,iOS都会显示该通知。苹果在iOS中始终严格执行后台任务。尝试验证您的应用程序是否符合要求。