Xamarin是Android和IOS长期运行服务的正确选择吗

Xamarin是Android和IOS长期运行服务的正确选择吗,android,xamarin,xamarin.ios,xamarin.android,Android,Xamarin,Xamarin.ios,Xamarin.android,我的特定任务要求我为Android编写一个长期运行的服务。除非用户明确关闭该服务,否则该服务应一直运行。这是我能做到的。然而,我的一位经理建议我考虑使用Xamarin,这样我们也可以在Windows 10和iOS上运行它。我没有使用Xamarin或iOS的经验,因此我正在努力寻找将Xamarin用于此特定任务的任何优势,也许代码库都在C#中 1) 有没有人有在Xamarin中为多个操作系统编写此类服务的经验?如果有,您能提供一些见解吗? 2) 我是否需要为该服务的Android、iOS和Wind

我的特定任务要求我为Android编写一个长期运行的服务。除非用户明确关闭该服务,否则该服务应一直运行。这是我能做到的。然而,我的一位经理建议我考虑使用
Xamarin
,这样我们也可以在Windows 10和
iOS
上运行它。我没有使用
Xamarin
iOS
的经验,因此我正在努力寻找将
Xamarin
用于此特定任务的任何优势,也许代码库都在
C#

1) 有没有人有在Xamarin中为多个操作系统编写此类服务的经验?如果有,您能提供一些见解吗?

2) 我是否需要为该服务的Android、iOS和Windows实现编写单独的c#代码

3) 如果有人有任何令人信服的理由支持Xamarin完成这项任务,请让我知道你的想法


谢谢

Xamarin已经将所有Android/iOS库移植到了C#。因此,您可以用C语言编写代码,但Android服务仍然以同样的方式工作

您将要做的是创建一个PCL代码(共享库),它可以在iOS/Android等平台上使用。所有的业务逻辑都放在这个库中。确保此处没有任何特定于平台的代码

现在,您将为Android和iOS创建单独的项目,它们将使用上述PCL库。这是特定于平台的非PCL代码

例如:在Android项目中,您仍将使用 启动服务(intent)要启动服务,但如果说onHandleIntent(),您将调用PCL(共享库)代码。 我建议在需要时注入对PCL代码的依赖


请注意:如果与特定于平台的代码相比,共享库中的代码行要少得多,那么选择Xamarin而不是native是没有意义的。

谢谢。这让我对Xamarin有了一些信心,至少在Android服务方面是这样。你对PCL与平台特定代码中的代码量的评论是我最关心的。因为我没有使用Xamarin或iOS的经验,所以我很难预测这一点。我希望有人已经做了我想做的事情,并且能够提供一些关于这将如何在iOS端工作的见解?也许知道的唯一方法就是尝试一下,但时间总是有限的。我在iOS方面没有经验,但我确信它和Android一样有效。服务将以相同的本机方式启动,您可以从那里调用共享库代码。