![](/img/trans.png)
[英]Windows 10 UWP - stop background task if foreground app is running
[英]Triggering event in foreground when background task is running at the same time?
我在Windows存儲應用程序的單獨項目(dll)中有后台任務。
收到推送通知時,將觸發我的后台任務。 在不使用應用程序時發生的大部分時間。 通知將保存,並在再次加載應用程序時,將根據收到的內容觸發操作。 使用LocalSettings可以輕松實現,應用程序可以檢查是否在加載時存儲了某些內容。
但是,當應用程序處於前台時,我想在實際的應用程序中觸發一些操作。 如果不經常查看LocalSettings,是否可以使用一種機制使任務與主應用程序通信以觸發某些內容?
沒有一個更具體的問題,很難提供具體的建議。
但是,我相信在WinRT上,最好的選擇是使用套接字在后台進程和前台進程之間進行通信。 最好使用命名管道,但WinRT似乎不支持該命名管道。
WinRT支持的另一種替代方法是命名互斥體。 但這不能傳輸數據。 它只能用於從一個進程向另一個進程提供某種信號,並且沒有內置的異步機制來等待互斥鎖,而套接字可以異步使用。
因此,恕我直言,基於套接字的方法是此類通知的更好選擇。
我實際上沒有在WinRT上專門做過這種事情,只是在其他情況下。 但是,您可能遇到的一個限制似乎是WinRT僅允許來自同一程序包的兩個程序之間的通信。 請參閱Metro Style App中是否有可用的進程間通信機制? 關於這一點的更多細節。 我尚不清楚這是否真的適用於套接字,我還沒有對其進行測試。 不過,嘗試起來很容易。
另一種選擇是使用WNS: 發送通知(Windows運行時應用程序) 。 為了您的目的,我認為“本地通知”模型是合適的。 大多數通知文檔似乎都是特定於基於UI的通知(平鋪,徽章和吐司),但是還有一個基本的“原始”通知API: Windows.Networking.PushNotifications命名空間
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.