我有一个Windows 8商店应用程序,后台任务也与它关联。一切工作正常。而我的问题是,有没有可能从BackgroundTask Run方法关闭我的应用程序?如何从后台任务关闭Windows 8商店应用程序
感谢您的建议。
我有一个Windows 8商店应用程序,后台任务也与它关联。一切工作正常。而我的问题是,有没有可能从BackgroundTask Run方法关闭我的应用程序?如何从后台任务关闭Windows 8商店应用程序
感谢您的建议。
没有,你不能这样做,可以立即!
但是你可以保存在你的应用程序的本地存储上的文件 - 或者设置 - 并让该文件每10分钟-whatever-前台应用程序检查和关闭应用程序在特定的条件下..
你的背景任务可以托管在它自己的专用进程中,或者可以在与您的用户界面相同的进程中进行托管。在一个单独的过程中,您的前台应用程序可以打开和关闭,而不会影响您的后台进程。在前台应用程序关闭时的共享过程中,后台任务也是如此。这不正确,反过来,共享流程模型不允许关闭后台任务来关闭前台应用程序。太糟糕了,是吧?
从技术上讲,它不建议前台应用程序自行关闭。但是,嘿,那个API是有东西的,对吧?当后台任务与前台应用共享进程时,它可以直接在共享内存之间进行通信。这将介绍方法1,用于通过使用静态事件从后台任务通信到您的前台应用程序 - 。
如果这不是你想要的,你需要单独的进程,那么你的选择是多一点棘手。
这里是最好的选择:
您可以设置一个特殊的设置(让我们说这是ApplicationData.LocalSettings.Values["DataFromBackground"] = "PleaseExit"
),然后调用从后台任务ApplicationData.
SignalDataChanged方法,这将提高通过前台应用程序处理的ApplicationData.
DataChanged事件。会有多少滞后?我不确定,但会有一些,所以要为此做好准备。
请务必记得将
DataFromBackground
设置回某个空值,包括调用Value.Remove()
,以免再次错误地处理它。话虽如此,当你的应用程序启动(或恢复)时,如果你的后台任务写了它,而事件不能被听到,你也应该查询这个值。
这可能是实现通信的最简单的方法。
有意义吗? 关于这个话题我在Ignite session上多说这个。
祝您好运!
感谢您回答我的问题,意外关闭应用程序也是一个坏主意,是的,我做了一个错误的决定,为我的目标创建一个后台任务,甚至没有后台任务,我也可以实现我的目标。我现在已经完成了我的目标而没有后台任务。再次感谢。 –
谢谢回答我的问题,关闭应用程序意外也是一个坏主意,是我把创建我的目标后台任务的错误决定,甚至没有后台任务也我可以实现我的目标。我现在已经完成了我的目标而没有后台任务。再次感谢。 –