我在Android中有一个简单的应用程序,它使用服务和广播接收器等功能。这是一个简单的项目,使用SignalR进行聊天。一个基本聊天,该服务具有signalR连接,并保持收听任何新消息或联系人状态的更新。
然后,我有一些广播接收器:
因此它连接到使用SignalR实现的服务器,并执行chatWebServer期望的所有服务器作业。
所以,我想使用MvvmCross重新编写这个应用程序,所以我可以拥有WindowsPhone,iOS和Android版本。我知道MvvmCross中的消息服务可以更改广播接收器,但是Android服务/ iOS长任务/ WindowsBackgroundsTasks会在MvvmCross中实现吗?可以在Core项目中实现它,所以我可以在所有平台上重用它吗?任何人都可以帮助它如何构建?
谢谢, 加布里埃尔巴斯托斯
答案 0 :(得分:1)
您仍然需要依赖平台可用的内容。所以在Android上你仍然需要一个BroadcastReceiver或至少一个具有SignalR连接的服务,否则如果应用程序关闭它将无法生存。
iOS和Windows是一个不同的故事,你不允许在后台运行东西。所以在这里你可能需要使用推送通知来通知新消息。虽然在Windows Phone上你可以拥有计划任务或者也称为后台代理,但我认为你最多可以每60秒做一次。
在iOS上,你运气不好,除非你使用内置的位置服务或类似的东西,否则你根本无法在后台做事。
MvvmCross没有神奇地做任何事情,也不允许创建一个平台没有提供的服务。