2015-10-27 75 views
4

我试图移植Android应用程序到Windows 10 uwp。在Android上很简单:启动完成后,应用程序服务启动。它通过互联网连接到控制器,获取系统状态和所有数据(温度传感器,泵,阀门等),并将所有内容保存在内存中。前台应用程序可以在服务获取数据后立即获取数据,并实时显示数值和图表。关闭前台应用程序后,服务继续工作,我仍然具有所有系统状态,并且如果需要,我可以播放警报声。
在Windows 10 uwp上可以做[几乎]相同的功能?我无法找到开始使用Windows服务的方法。前台应用程序关闭时,前台应用程序启动的服务停止。 SocketBackgroundTask保持连接完美,但系统状态随服务丢失。我应该在每次更新后将系统状态保存到文件并分析所有数据吗?数据流从10分钟到10秒不等。
或者我应该忘记Windows 10作为有限的平台?
谢谢Windows 10 uwp粘滞后台服务?

+0

Windows和Android的主要区别在于,Windows试图消除由于在后台运行的东西而导致的电量消耗。这就是为什么后台任务有很多限制,比如CPU,内存和网络配额。也许你应该考虑将后台服务的监视逻辑移动到云中的服务器上,并在必要时发送推送通知?推送通知可以触发后台任务,然后可以播放警报声并准备数据,以便在前台启动时立即可用。 – sibbl

+1

推送通知不是我的解决方案。我的应用程序是一个工艺过程监视器似乎不可能在Windows 10上,因为每次我打开前台应用程序,我必须检索完整的数据集。我有很大的希望有一个通用的桌面和移动应用程序。与Xamarin的帮助 - 一个Android和Windows的代码库。我需要修改微控制器的逻辑来支持windows :( 谢谢你的回答:) – Bixit

+0

那么你也可以使用每分钟运行很短时间的背景任务,或者至少每隔15分钟运行一次,如果这也有帮助? – sibbl

回答

1

我正在设计一个类似的传感器控制软件,我发现UWP/Win10是有限的。我们最终使用Assigned Access将应用程序永久保存在前台。

分配的访问 分配的访问权限为应用程序分配一个帐户。因此,当Bob先生登录时,应用程序将全屏启动,并且无法关闭,如果它崩溃,则会重新启动。

请注意,访问系统其他部分的唯一方法是按ALT-CTRL-DEL并以不同的用户身份登录。这对某些人来说可能是不好的,但是如果你有关键的进程监控正在进行,那么用户不能在系统中搞砸或退出应用程序可能是件好事。

实现起来也很简单,您只需要向应用清单添加声明,并且需要Win10 Pro或更高版本。

Windows物联网 你也可以看看Windows 10物联网,当你部署一个应用程序,它几乎是一样的东西。然而,硬件的范围相当有限,而且其中许多硬件功能尚未完善--RPi受到SD卡本身不可靠的影响,并且缺乏图形加速。 Dragonboard没有超过720p的其他决议的驱动支持等https://developer.qualcomm.com/forum/qdn-forums/hardware/iot-development-platform/29652

扩展执行 此外,我们还利用扩展执行,这让以最小化状态的应用程序运行,可能无限期地尝试。我对此有复杂的感受。虽然应用程序大部分时间都会继续运行,但如果操作系统正在为资源而苦苦挣扎,那么应用程序将会暂停并在用户切换回之前不会重新启动。