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

2023-12-04

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

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

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

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

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

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

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

Thanks.


即使应用程序被放置,此服务也将继续同步旅程 进入后台甚至关闭。

首先,如果您的应用程序is closed在 iOS 中,我确信不能在后台运行任何服务。

那么如果你的应用程序is put into background,苹果对允许应用程序在后台运行有严格的限制。后台任务有时间限制,您可以阅读文档了解更多信息。有一节是关于处理后台任务时间限制你可以尝试一下。

此外,Apple 允许某些特定应用程序在后台运行,这些应用程序必须在后台执行任务。例如,应用程序需要play music在背景中,update location在背景等中你可以看到此处申请注册类别。如果您的应用满足那里的要求,您可以向系统申请后台运行权限。

Refer: Xamarin.iOS 中的后台

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Xamarin iOS 上执行简单的后台任务 的相关文章

  • 如何从 Qt 应用程序通过 ODBC 连接到 MySQL 数据库?

    我有一个新安装的 MySQL 服务器 它监听 localhost 3306 从 Qt 应用程序连接到它的正确方法是什么 原来我需要将MySQL添加到ODBC数据源 我在遵循这个视频教程后做到了这一点 https youtu be K3GZi
  • 如何在C中同时运行两个子进程?

    所以我开始学习并发编程 但由于某种原因我什至无法掌握基础知识 我有一个名为 fork c 的文件 其中包含一个 main 方法 在此方法中 我将 main 分叉两次 分别进入子进程 1 和 2 在孩子 1 中 我打印了字符 A 50 次 在
  • ContentDialog 未与 UWP 中心对齐

    据我所知 ContentDialog的默认行为应该是使其在 PC 上居中并在移动设备上与顶部对齐 但就我而言 即使在 PC 上我也将其与顶部对齐 但我不明白发生了什么 我正在使用代码隐藏来创建它 这是我正在使用的代码片段 Creates t
  • Visual Studio 中列表框的上移、下移按钮[重复]

    这个问题在这里已经有答案了 我正在尝试制作一个上移按钮和一个下移按钮 以移动 Microsoft Visual Studio 2012 中列表框中的选定项目 我已经在 WDF jquery winforms 和其他一些表单中看到了其他示例
  • 对作为函数参数传递的指针使用删除

    删除作为函数参数传递的指针是否可以 并且合法 如下所示 include
  • 如何减少 MinGW g++ 编译器生成的可执行文件的大小?

    我有一个简单的 Hello world C 程序 在 Win XP 下由 MinGW g 编译器编译为 500kB 可执行文件 有人说这是由于iostream的库和静态链接libstdc dll Using s链接器选项有点帮助 减少了 5
  • 调用异步方法在视图模型的构造函数中加载数据有警告

    我的视图包含一个 ListView 它显示来自互联网的一些数据 我创建一个异步方法来加载数据并在我的视图模型的构造函数中调用该方法 它有一个警告提示我现在使用await关键字 还有其他解决方案可以在构造函数中异步加载数据吗 有几种可以应用的
  • iOS 上有像 JUNG 这样的可视化框架吗?

    有没有类似的可视化框架JUNG http jung sourceforge net applet index html对于iOS 我想实现类似的东西this http prefuse org gallery graphview iOS 上最
  • 如何让XmlReader读取C#中的属性?

    我有一个 XML Stream 其中包含以下 XML 内容
  • 我在使用 ado.net 时收到错误 Argument 2 may not be pass with ref keywords

    int t 0 cmd Parameters AddWithValue Res ref t 我在第二行收到错误 参数 2 不能与 ref 关键字一起传递 您只能通过引用传递参数ref if the 范围 is a ref参数也是如此 Add
  • 我可以将 UseCSharpNullComparisonBehavior 用于单个查询吗?

    我有一个查询 该查询曾经是存储过程 现已转换为 EF 查询 现在已经超时了 使用 SQL Profiler 我可以看到生成的 SQL 的唯一区别是 EF 转变的新行为entity Property value into entity Pro
  • 您对“大规模 C++ 软件设计”的看法 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 正在阅读亚马逊评论 https rads stackoverflow com amzn click com 0201633620 and ACC
  • 更改 Xamarin.Forms 应用中顶部栏和底部栏(ControlsBar、StatusBar)的颜色

    无论如何 即使后面需要特定于平台的代码 也可以更改顶部栏 蓝色的 和底部栏 黑色的 的颜色吗 我希望添加对浅色和深色模式的支持 因此我希望能够在运行时更改它 有可能的 Android Using Window SetStatusBarCol
  • 如何构建一棵与或树?

    我需要一个支持 与 和 或 的树结构 例如 给定一个正则表达式 如ab c d e 我想把它变成一棵树 所以 一开始我们有两个 或 分支 它可以向下ab or c d e 如果你低头ab分支 你得到两个节点 a and b or a其次是b
  • 如何在 C# 中更改公共 IP 地址

    我正在创建一个 C winform 应用程序 我想在其中更改公共 IP 地址 而不是像 Hotspot Shield ZenMate OpenVPN 等那样更改 IPv4 地址 我已经检查了以下链接 但没有找到足够的帮助 所以我发布了这个问
  • 如何同步nosql db(ravendb)中的更改

    我已经开始在 RavenDB 的示例上学习 NoSQL 我从一个最简单的模型开始 假设我们有由用户创建的主题 public class Topic public string Id get protected set public stri
  • 卸载程序

    我正在尝试使用此代码卸载程序 但它似乎不起作用 我尝试过其他答案 但似乎也不起作用 有人可以帮助我吗 我正在尝试按给定名称 displayName 卸载该程序 例如 我给出 displayName Appname 那么此代码应该从我的计算机
  • 如何在c#中创建多线程

    我需要监听机器中的所有串行端口 假设我的机器有 4 个串行端口 我必须创建 4 个线程并开始分别使用附加线程监听每个端口 我使用此代码来获取我的机器中的端口数量 private SerialPort comPort new SerialPo
  • 实体框架代码首次日期字段创建

    我正在使用实体框架代码优先方法来创建我的数据库表 下面的代码 创建一个DATETIME数据库中的列 但我想创建一个DATE柱子 DataType DataType Date DisplayFormatAttribute ApplyForma
  • 如何使用 C# 为 azure devops 变量赋值

    我有 selenium C 测试脚本 可以从浏览器获取令牌 我有两个 azure devops 任务 一个用于执行 selenium 测试 另一个用于执行 API 测试 我想将 selenium 测试获取的令牌传递给 API 测试执行任务

随机推荐

  • CUDA 5.0:替换 cutil.h?

    我想用新的 CUDA 5 0 编译一个旧项目 基于 CUDA 2 3 不幸的是 它使用了旧的 cutil h 标头 该标头在 CUDA 5 0 中不再可用 这个标题有替代品吗 特别是缺少图像导入和导出功能 PPM PGM 例如剪切保存PGM
  • JPanel 填充所有 JFrame 空间

    我编写了这段代码来显示面板中的一组颜色 import java util ArrayList import java util List import javax swing JFrame import javax swing JPanel
  • PHP - RSS 生成器

    我有一个旧网站 每次创建新帖子时都会生成自己的 RSS 当我在 PHP 4 的服务器上时一切正常 但现在主机更改为 PHP 5 我总是有一个 格式错误的 XML 我使用 xml parser create 和 xml parse 和 fwr
  • C# 通过OleDb读取打开的Excel文件

    我需要连接到open使用 NET 3 5 的 Excel 2003 文件 看来我尝试使用的 OleDb 连接只需要该文件 但我需要同时在 Excel 中打开这个文件 Is 非锁定读取可能的 EDIT 我通过在打开文件之前复制文件解决了这个问
  • Private 可见性修饰符的含义

    在下面的 Tosee 类中 当我调用 s hiddenInt 时 hiddenInt 是可见的 但是 当我在另一个类 CantSee 中创建 ToSee 对象时 私有变量不可见 为什么会这样呢 我的印象是 私有意味着在类的任何实例中 客户端
  • NHibernate Validator 未与 Fluent NHibernate 集成

    我在让 NHV 与 Fluent NHibernate 配合使用时遇到一些问题 我的单元测试有一个应该验证失败的实体 最终会抛出 ADO 异常 我按照以下方式配置了 NHV private static void Init SessionF
  • Rails form_for 从不调用创建控制器操作来使用redirect_to

    我正在使用 Rails 3 并且 StatusController 中有一个 form for 当我点击提交按钮时 我的创建方法永远不会被调用 我的创建方法有一个redirect to index 但是当我点击 提交 时 所有信息都保留在表
  • 如何使用列号从 MySQL 表中删除列

    我正在尝试从与 Handsontable 一起使用的 MySQL 表中删除一列 当我从 Handsontable 中删除一列时 我可以使用以下命令获取该列的索引afterRemoveCol 打回来 afterRemoveCol functi
  • MySQL 上的数据库事务内的 Codeception 验收测试

    使用 Codeception 为我们的 Custom 带有 Symfony 组件和 Doctrine 框架编写验收测试 我们有一组实用方法 由 Phpunit 测试单独使用 用于创建要测试的各种实体 这包括用户和其他相关数据等内容 在我们的
  • 重载方法值适用于替代方案:

    我是 Spark 新手 我试图为 json 数据定义一个模式 并在 spark shell
  • 如何修复此代码以创建字符串数组?

    我想创建一个字符串数组 这是代码 include
  • 如何在 eclipselink 中禁用缓存

    我尝试通过在 persistence xml 中使用以下属性 使用 Eclipse indigo 禁用 EclipseLink 中的 L2 缓存
  • 使用 OpenMP 并行化输出

    我编写了一个必须处理大量数据的 C 应用程序 使用 OpenMP 我很好地并行化了处理阶段 但令人尴尬的是 我发现输出写入现在是瓶颈 我决定使用一个parallel for那里也是如此 因为我输出项目的顺序是无关紧要的 它们只需要作为连贯的
  • OpenCV 创建后更改关键点或描述符参数

    在最新版本中 OpenCV 允许使用 create 函数轻松创建关键点检测器 描述符或匹配器 例如 cv Ptr
  • Unix和Linux中的“dot”和“dot dot”文件是真实文件吗?

    做特殊文件 and 实际上存在并作为普通文件存储 位于文件系统中 或者仅在文件系统处理程序访问时才解释 创建它们 当前目录 父目录 我的假设是它们不存在 否则 当您创建符号链接或绑定安装时 事情就会崩溃 我认为目前接受的答案并不正确 或者至
  • 以编程方式添加代码模板?

    我正在为我们的项目编写一个自定义 XML 编辑器 并希望添加对模板的支持 即当用户写
  • Spark异常:worker中的Python版本3.4与驱动程序3.5中的版本不同

    我正在使用 Amazon EC2 并且我将主服务器和开发服务器合二为一 我还有另一个针对单个工人的实例 我对此很陌生 但我已经设法使 Spark 在独立模式下工作 现在我正在尝试集群 master 和worker 处于活动状态 我可以看到它
  • fpdf“UnicodeEncodeError:'latin-1'编解码器无法对位置 88 中的字符 '\u2013' 进行编码:序数不在范围内(256)”

    我正在尝试在 Python 中将文本文件转换为 pdf 但出现错误 为什么会发生这种情况以及如何解决 这是我的代码 import fpdf from fpdf import FPDF pdf FPDF pdf add page pdf se
  • PHP:将本地时间转换为 UTC

    假设我得到一个像这样的字符串08 22 2015 10 56 PM并且该日期 时间字符串始终仅指一个特定时区 我需要能够将其转换为这种格式 Ymd THis Z 这是 iCal 格式 如何将该字符串转换为祖鲁时间并转换为 Ymd THis
  • 如何在 Xamarin iOS 上执行简单的后台任务

    在我们的应用程序中 用户可以跟踪并提交他们记录的旅程 我需要一种在 iOS 中创建任务的简单方法 我已经在 Android 上创建并测试了它 它的工作原理是 用户选择他们想要提交的旅程 点击同步并创建一个前台服务 将旅程同步到我们的 API