Xamarin Android - 周期性任务执行

Xamarin Android - Periodic task execution

我正在用 Xamarin.Android 编写一个应用程序来从一些家庭自动化传感器(Sonoff、Shelly)检索数据并设置一些开关。我需要它甚至在后台进行 api 调用,大约每 5 或 10 分钟一次。我知道时间很短,我打算稍后用 Arduino 做这个,但现在我需要这个。 我进行了一些研究,阅读了有关服务及其局限性的信息,但我不知道该怎么做。有人能帮我吗?谢谢

您可以:

  1. 创建一个保持 运行ning 的前台服务,然后在那里执行一个计时器
  2. 使用 Android X 中的 WorkManager,根据设备性能和软件版本,将优先使用以下内容:
    • JobScheduler
    • Firebase JobDispatcher
    • 报警管理器

JobScheduler 允许您(有点像 Linux 上的 cron)将计划任务设置为 运行。但是,这样做的频率是有限的。此频率取决于 Android 版本和作业标准以及设备是否 运行 资源不足。

有了前台服务,只要服务还活着,你就可以或多或少地做你想做的事。您可能需要在您的应用程序的电池设置中禁用电池优化,否则它应该可以正常工作。

除了这些功能之外,除非您使用的是已获得 root 权限的设备或者您是该设备的设备管理员,否则您不能做更多的事情。如果是 root/device 管理员,您可以将您的应用标记为 Persistent 以禁止它被 Android.

杀死