我的具体任务要求我为Android编写一个长期运行的服务。该服务应该一直运行,除非用户专门关闭它。我能这样做。但是,我的一位经理建议我考虑使用Xamarin
,以便我们也可以在Windows 10和iOS
上运行此操作。我没有使用Xamarin
或iOS
的经验,所以我很难找到使用Xamarin
执行此特定任务的任何优势,除了代码库可能都在C#
。
1)是否有任何人在Xamarin中为多个操作系统编写此类服务的经验,如果有,您能提供任何见解吗?
2)我是否必须为该服务的Android,iOS和Windows实现编写单独的c#代码?
3)如果有任何令人信服的理由支持Xamarin执行此任务,请告诉我您的想法。
谢谢
答案 0 :(得分:1)
Xamarin已将所有Android / iOS库移植到C#。因此,您可以使用C#语言编写代码,但Android服务仍然可以以相同的方式工作。
您基本上要做的是创建一个PCL代码(共享库),可以在iOS / Android等平台上使用。所有业务逻辑都在这个库中。确保没有任何特定于平台的代码。
现在,您将为Android和iOS创建单独的项目,这些项目将使用上述PCL库。这是特定于平台的非PCL代码。
例如:在Android Project中,您仍将使用 StartService(intent)启动服务但是说onHandleIntent(),您将调用PCL(共享库)代码。 我建议在需要时注入对PCL代码的依赖。
请注意:如果共享库中的代码行与平台特定代码相比要少得多,则选择Xamarin而不是原生代码是没有意义的。