2015-10-27 157 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

擴展執行 此外,我們還利用擴展執行,這讓以最小化狀態的應用程序運行,可能無限期地嘗試。我對此有複雜的感受。雖然應用程序大部分時間都會繼續運行,但如果操作系統正在爲資源而苦苦掙扎,那麼應用程序將會暫停並在用戶切換回之前不會重新啓動。