如何在编写后台任务之前声明后台任务?

时间:2012-10-29 23:04:59

标签: windows-8 microsoft-metro backgroundworker background-process appxmanifest

在我的Package.appxmanifest文件中,我添加了一个后台任务声明,“因为我最终需要一个 - 它尚未编写。我选择了”系统事件“作为支持的任务类型,但没有应用程序设置(可执行文件,入口点,开始页面)。

当我尝试在添加该声明后运行应用程序时,我得到:“应用程序清单缺少必需的元素'/ Package / Applications / Application / Extensions / Extension / BackgroundTasks / Task'”

所以我可以在“应用程序设置”编辑框中输入一些值,或者在我声明我要使用之前,我是否必须首先创建背景任务,或者......? ?

更新

根据http://www.silverlightshow.net/items/Windows-8-metro-make-your-app-alive-with-background-tasks.aspx,ControlChannel选项可用于套接字:

“ControlChannel:这些任务只在XAML / C#应用程序中可用,可以在网络时通知 资源接收一些数据。这些主要与StreamSockets相关。此任务也需​​要 锁屏约束。“

文章还提到:“......您可以收到有关系统事件的通知。这些事件会在发生某些事件时触发,例如传入的短信,......”但如果我正确理解,只有移动服务提供商才能实施SMSReceived事件。

但是我还不清楚的一件事是:我可以在我的项目中创建一个类 后台任务,或者我是否需要将一个项目添加到我的解决方案中 后台任务?如果是后者,该项目应该是“类库(Windows Store Apps)”还是 “Windows运行时组件”项目类型?

3 个答案:

答案 0 :(得分:2)

您可以在应用清单文件中定义后台任务。对后台任务的定义没有这样的要求,你可以把你的第一个页面地址。见下图。您需要定义Task Type。就我而言,我定义了Timer。另外Entry point在我的案例中我定义了ItemsPage.cs,(我在ItemsPage.cs中没有后台任务)。 enter image description here

之后,您需要在Badge logo标签中添加Lock Screen NotificationsApplication UIenter image description here

答案 1 :(得分:2)

您可以在实际实施之前定义后台任务,只需:

  • 在清单添加功能后台任务中,检查计时器并在入口点行添加包含后台任务代码的类的全名。就我而言,我到了那里:
  

Tasks.UpdateTask

  • 选择锁定屏幕通知类型并选择徽章徽标。注意徽章徽标必须为24x24且仅使用白色或(半)透明背景

更新,后台任务必须在另一个项目中定义,并且必须是“Windows运行时组件”类型。请注意,此类项目有一些限制,基本上您无法在其中引用任何其他非Windows运行时组件库。
http://msdn.microsoft.com/en-us/library/windows/apps/br230301.aspx

答案 2 :(得分:1)

您必须至少创建一个入口点才能在应用清单中列出它。