gpt4 book ai didi

android - Xamarin.Forms 后台/前台服务最佳实践?

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

我正在使用 Xamarin.Forms 构建一个应用程序,无论应用程序是在前台还是后台,它都会定期(重新:每秒)执行一些操作。想想像计时器/时钟之类的东西。

我发现了很多关于 Android 方面的信息。看起来在 8 之前,您可以在服务中运行它——而在 8 或之后,您需要将它作为前台服务运行。

例如 https://learn.microsoft.com/en-us/xamarin/android/app-fundamentals/services/foreground-services

据我所知,如果我想编写任何类型的 Controller 来初始化此服务(仅在我的客户端应用程序中需要时),我必须将 Mono.Android 添加到主共享库,这看起来像这是错误的做法,因为 iOS 版本也会有这种依赖性。

但是,当我搜索 iOS 文档时,它和最佳实践一样有点参差不齐。我不确定是否正确的路线是进行后台处理——或者这是否会关闭一切。

例如 https://learn.microsoft.com/en-us/xamarin/ios/app-fundamentals/backgrounding/introduction-to-backgrounding-in-ios

Xamarin.Forms 似乎在过去几年的工作方式上取得了长足的进步——甚至 2016 年到 2017 年也发生了许多变化。网络上充斥着大量关于所有这些的不同(且不再有效)的教程。

现在,我有一个状态跟踪器的单例实例,可以调用它每秒更新一次(或其他控件,即快进一分钟)。

有没有什么跨平台前台服务开发的最佳实践?在这一点上,我最好的猜测是从该 Controller 发布消息事件,在 iOS 和 Android 项目的主体中使用特定代码,然后它将“知道”如何创建适当的服务,然后调用该状态的单例实例 -我之前提到的跟踪器(每秒运行一次)。

是否有任何最佳实践或其他任何东西都像本文所发表的那样简单?定期调用,当服务“初始化”时,在后台运行并根据需要调用状态服务来跟踪/通告不同的状态。

最佳答案

Xamarin.Forms 仅用于用户界面跨平台开发,由于 Xamarin.Forms 基于 .Net,您还可以使用 .Net 中的所有内容进行跨平台开发。这就是开箱即用的情况。一些 .Net 中不可用的跨平台功能包含在 Xamarin.Essentials 等官方和非官方插件中。

总而言之,除非有您需要的插件(我不知道),否则您需要使用 native Android 和 iOS 功能。你也受到他们的限制。

无法在后台以可预测的方式在 iOS 上运行该应用程序。虽然可能有一些解决方法,例如使用推送通知,但在一般情况下,它们都不是很好的方法。

关于android - Xamarin.Forms 后台/前台服务最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53915392/

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