gpt4 book ai didi

c# - 如何在 Xamarin iOS 上执行简单的后台任务

转载 作者:行者123 更新时间:2023-11-29 05:24:25 25 4
gpt4 key购买 nike

在我们的应用程序中,用户可以跟踪并提交他们记录的旅程。我需要一种在 iOS 中创建任务的简单方法。我已经在 Android 上创建并测试了它。它的工作原理是:

  • 用户选择他们想要提交的旅程。
  • 点击同步并创建一个前台服务,将旅程同步到我们的 API。
  • 即使应用程序置于后台甚至关闭,此服务也将继续同步旅程。

简而言之,我如何在 iOS 9-13 上实现这一目标?

我已经尝试使用以下方法创建后台安全任务:

nint taskID = UIApplication.SharedApplication.BeginBackgroundTask( () => {});

但是,这只给任务运行 2 分钟的时间,这还不够。我已经研究过 NSURlSessions,但它们需要 URls,而我们正在使用我们自己的 API 包装器。

我只是想要一种在用户点击“同步”时创建任务的方法,并且该任务也能够在后台运行。如果应用程序关闭时任务被取消,我并不太担心,但如果可能的话希望任务继续。

谢谢。

最佳答案

This service will continue to sync journeys even if the app is put into the background or even closed.

首先,如果您的应用在 iOS 中已关闭,我确信无法在后台运行任何服务。

然后,如果您的应用被置于后台,Apple 会严格限制允许应用在后台运行。 background-tasks有时间限制,您可以阅读文档了解更多信息。有一个关于handling-background-task-time-limits的部分你可以尝试一下。

此外,Apple 允许某些特定应用程序在后台运行,这些应用程序必须在后台执行任务。例如,需要在后台播放音乐、在后台更新位置等的应用。您可以看到 Application Registration Categories here .如果您的应用符合那里的要求,您可以向系统申请后台运行权限。

引用:Backgrounding in Xamarin.iOS

关于c# - 如何在 Xamarin iOS 上执行简单的后台任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58325614/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com