使用调度代理进行实时磁贴更新

时间:2013-09-30 06:53:01

标签: c# silverlight windows-phone-7 windows-phone-8 live-tile

我正在尝试使用带有periodictask后台代理的动态磁贴。我的情况是我必须从medialibrary获取图像然后保存到隔离存储一些图像多达九个图像,因为循环图块支持最多九个图像。我在我的解决方案中添加了定期代理项目,并将其引用到我的主项目中。在我的主项目中,我正在注册我的定期任务并开始执行任务。但其余的调用和实现都是由Schedule Agent完成的。我必须从我的主项目中获取一些用于创建图块的图像。当我尝试将主项目引用添加到我的Scheduling代理项目时,它会显示“您有循环依赖”您无法添加引用。任何人都可以帮助我如何在我的日程安排任务项目中获得我的主项目的业务逻辑。

===编辑===

让我们说我有第一个主要项目叫做HelloWorld,它做了一些操作并在隔离存储中保存了一些图像并在Isloated存储中保存了未读消息。现在我有调度代理的第二个项目及其在我的主项目“HelloWorld”中的参考我正在注册我的调度代理并在我的主项目“HelloWorld”中启动它们。但调用的其余部分在调度代理中。

protected override void OnInvoke(ScheduledTask task)
{
 StandardTileData data = new StandardTileData

 {

 Title = "My tile!",

 Count = 10, // I Need To Get This Counter From Isolated Storage Or My Other main Project

 BackgroundImage = new Uri("/Background.png", UriKind.RelativeOrAbsolute),

 BackTitle = "This is the back",

 BackContent = "Hallo!",

 BackBackgroundImage = new Uri("/Background.png", UriKind.RelativeOrAbsolute)
 };

ShellTile.ActiveTiles.First().Update(data);
  // If debugging is enabled, launch the agent again in one minute.
#if DEBUG_AGENT
  ScheduledActionService.LaunchForTest(task.Name, TimeSpan.FromSeconds(60));
#endif

  // Call NotifyComplete to let the system know the agent is done working.
  NotifyComplete();
}

按照Igor的建议,我创建一些第三类库项目,然后我将在那里编写一个方法,从My Main Project中获取信息,我将在第三个类库项目中引用我的主项目。然后,如果我在调度项目中调用此类库,并再说它你有循环依赖。请告诉我如何完成

1 个答案:

答案 0 :(得分:0)

将业务逻辑提取到第三个库类项目,并从主项目和计划任务项目

中引用它