【发布时间】:2018-12-24 15:46:33
【问题描述】:
我正在使用 Xamarin.Forms 构建一个应用程序,该应用程序将定期(重新:每秒)可能执行某些操作,无论应用程序是在前台还是后台。想想计时器/时钟之类的东西。
我发现了大量有关 Android 方面的信息。看起来在 8 之前,您可以在服务中运行它 - 而在 8 或更高版本中,您需要将其作为前台服务运行。
例如 https://docs.microsoft.com/en-us/xamarin/android/app-fundamentals/services/foreground-services
据我所知,如果我想编写任何类型的控制器来初始化此服务(仅在我的客户端应用程序中必要时),我必须将 Mono.Android 添加到主共享库中,这看起来像这样做是错误的,因为 iOS 版本也会有这种依赖关系。
但是,当我搜索它时,iOS 文档有点参差不齐,最佳实践也是如此。我不确定正确的路线是否是做背景 - 或者这是否会关闭。
Xamarin.Forms 似乎在过去几年的工作方式上取得了长足的进步——即使是 2016 年到 2017 年,也发生了许多变化。网络上充斥着大量关于所有这些的不同(并且不再有效)的教程。
现在,我有一个状态跟踪器的单例实例,可以调用它来每秒更新一次(或其他控件,即向前跳一分钟)。
是否有跨平台前台服务开发的最佳实践?在这一点上,我最好的猜测是从该控制器发布消息事件,在 iOS 和 Android 项目的主体中使用特定代码,然后它们将“知道”如何创建适当的服务,然后调用该状态的单例实例-我之前提到的跟踪器(每秒运行一次)。
是否有任何最佳实践或其他任何内容如此简单的已发布?定期调用,在服务“初始化”时在后台运行,并根据需要对状态服务进行调用以跟踪/宣布不同的状态。
【问题讨论】:
标签: android ios xamarin.forms