.NET MAUI 每天运行几次的循环后台作业

2024-04-14

我希望后台工作每天运行 2-3 次,但更少也没关系。这只是对我的服务器的快速 api 调用,不需要更新 UI,事实上我更喜欢它在应用程序不在前台时运行,但这是另一个主题。

我读过最新版本的 Android 和 iOS 甚至制造商限制了该应用程序,但我不需要这些任务精确地在某个时间执行。 我不确定对于 Android 是否应该使用 JobScheduler 或 WorkManager,对于 iOS 是否应该使用 BackgroundFetch 或 BackgroundTask。

假设该任务每天应运行 3 次,因此大约每 8 小时运行一次。 问题是用户可能不会再次打开应用程序,因此应该将任务安排为重复执行,也许每次运行时都可以安排另一个任务,但如果一个任务失败,则永远无法到达该行。

我不需要支持旧的操作系统版本,只需要支持iOS 15+和Android api 30+。

感谢您的帮助!


苹果对于App占用的硬件资源要求严格,更不用说后台状态的App了。当App进入后台状态时,它很快就会被操作系统暂停,除非你向操作系统申请许可。只允许几种模式在后台运行,见下图

你想要一个后台 cron 作业,这在 iOS 中是不允许的。

对于 Andriod,您知道我们可以使用 WorkManager 或 JobSchedule。以下是一些您可以参考的文档:

WorkManager 入门 https://devblogs.microsoft.com/xamarin/getting-started-workmanager/

Android 作业调度程序 https://learn.microsoft.com/en-us/xamarin/android/platform/android-job-scheduler

希望对你有帮助。

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

.NET MAUI 每天运行几次的循环后台作业 的相关文章

随机推荐

  • T-SQL 中的随机加权选择

    如何根据所有候选行的应用权重在 T SQL 中随机选择表行 例如 我在表中有一组行的权重分别为 50 25 和 25 加起来为 100 但不是必须的 我想随机选择其中一个 其统计结果相当于相应的行重量 Dane 的答案包括以引入平方律的方式
  • 使用 ionic zip 时压缩失败

    我正在使用最新版本的 ionic zip 版本 1 9 1 8 我已经设置了 ionic zip 的属性ParallelDeflateThreshold 0 过去两个月 压缩机制工作得很好 突然 它停止工作了 压缩线程挂起 ionic zi
  • bash 是否存在内存泄漏?

    我在跑bashv4 4 19 1 在 Ubuntu 18 10 上发布 如果我跑valgrind在一个简单的脚本上 或者甚至bash version 我发现我确实丢失了 12 个字节的内存 但仍然可以访问大约 46kB 的内存 仍然可访问的
  • 删除 Pig 输出中的括号和逗号

    目前我的输出如下 130 1 131 1 132 1 133 1 137 1 138 2 139 1 140 1 142 2 143 1 我想要这样 130 1 131 1 132 1 我的代码如下 A LOAD user links sm
  • xcode9 / SceneKit - .dae 文件未加载到 SCNScene 中 - 返回 nil

    我正在尝试使用以下代码将 dae 文件加载到 SCNScene 中 let solutionScene SCNScene named art scnassets level1 dae print solutionScene rootNode
  • 使用 numpy 对数组进行高效阈值过滤

    我需要过滤一个数组以删除低于某个阈值的元素 我当前的代码是这样的 threshold 5 a numpy array range 10 testing data b numpy array filter lambda x x gt thre
  • Android Wear 通过删除数据项在 Data Api 上删除数据

    我的问题很简单 如何从DataAPI中删除数据 我在路径 model model id 中有一些数据 想要删除 model 中的所有数据 我使用代码 uri new Uri Builder scheme PutDataRequest WEA
  • 显示 PopupWindow 时未调用 onBackPressed

    嘿伙计们 所以目前我正在使用 PopupWindow 来显示应用程序内浏览器 然而 当按下后退按钮时 它什么也不做 我在另一个片段中使用 PopupWindow 然后使用语句在 FragmentActivity 中设置 PopupWindo
  • npm 错误!代码 EPEERINVALID

    我是新来的 我得到一个 npm 错误 代码 EPEERINVALID 详细信息如下 我目前正在运行以下内容 nvm 0 32 1 npm 2 15 9 节点 v4 5 0 grunt cli v1 2 0 咕噜 v0 4 5 而且 在进行软
  • Python 列表附加导致奇怪的结果

    我有一个非常奇怪的问题 这是示例代码 class SomeClass object a b def init self args kwargs self a 1 2 3 4 self b self a self a append 5 6 p
  • 获取二维数组的长度

    如果我不知道数组的第二个维度 如何获取它 array length仅给出第一个维度 例如 在 public class B public static void main String main int nir new int 2 3 Sy
  • LAST_INSERT_ID() MySQL

    我有一个 MySQL 问题 我认为这一定很简单 当我运行以下 MySql 查询时 我需要从 table1 返回最后插入的 ID INSERT INTO table1 title userid VALUES test 1 INSERT INT
  • 将 lambda 传递到函数模板中

    我正在学习 C 并且正在尝试实现一个二分搜索函数 该函数查找谓词所适用的第一个元素 该函数的第一个参数是一个向量 第二个参数是一个计算给定元素的谓词的函数 二分查找函数如下所示 template
  • 如何忽略 IntelliJ 中的“无法解析查询参数”错误

    我有一个疑问 Date dDateFrom String sql select a from tblA where timestamp gt ps this connection prepareStatement sql ps setTim
  • 如何测量用 PHP 编写的代码的速度? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我怎么能说哪一类 都做同样的工作 执行得更快呢 有没有软件可以测量它 你有 至少 两种解决方案 相当
  • 如何在 Visual Studio 中关闭构建定义的缓存

    在项目文件中我导入我自己的目标文件
  • Python:格式化使用“%”和“{”作为字符的正则表达式字符串

    我有以下正则表达式 它允许我使用 re split 解析 20 20 或 20 50 等百分比 0 9 1 3 我想使用字符串格式将系列标识符 即 作为 config py 的参数传递 SERIES 我尝试过的两种方法都产生了错误 新式格式
  • 如果“target”属性与某个字符串通过 jQuery 匹配,则获取该属性的值

    假设我有一些链接 a href target self a a href target self a a href target self a 如何获取以 UniqueString 开头的目标属性的值 元素的ID未知 我们需要通过 targ
  • 显示软键盘时向上移动布局?

    我在RelativeView中有一些元素设置了对齐底部属性 当软键盘出现时 这些元素被软键盘隐藏 我希望它们向上移动 以便如果有足够的屏幕空间 它们会显示在键盘上方 或者使键盘上方的部分可滚动 以便用户仍然可以看到元素 关于如何解决这个问题
  • .NET MAUI 每天运行几次的循环后台作业

    我希望后台工作每天运行 2 3 次 但更少也没关系 这只是对我的服务器的快速 api 调用 不需要更新 UI 事实上我更喜欢它在应用程序不在前台时运行 但这是另一个主题 我读过最新版本的 Android 和 iOS 甚至制造商限制了该应用程