我想知道是否可以从后台任务在我的应用程序中运行方法?,而不仅仅是后台任务中的代码。我问的原因是我有一个后台任务,我想用来自网络服务器的数据更新我的活动磁贴。我将 web 服务调用放在后台任务中,如下所示:
public sealed class TileUpdater : IBackgroundTask
{
public async void Run(IBackgroundTaskInstance taskInstance)
{
ServiceReference.WebServiceSoapClient test = new ServiceReference.WebServiceSoapClient();
var nb = await test.GetLatestDataAsync("temp");
double temperature = nb.Value;
string unit = nb.Unit;
string latestTemp = " " + nb.Value + " " + nb.Unit;
var defferal = taskInstance.GetDeferral();
var updater = TileUpdateManager.CreateTileUpdaterForApplication();
updater.EnableNotificationQueue(true);
updater.Clear();
for (int i = 1; i < 6; i++)
{
var tile = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquareText02);
tile.GetElementsByTagName("text")[0].InnerText = "Tile " + latestTemp;
tile.GetElementsByTagName("text")[1].InnerText = DateTime.Now.ToString("hh-mm");
updater.Update(new TileNotification(tile));
}
defferal.Complete();
}
}
但是,当我运行该应用程序时,什么也没有发生,并且我没有收到错误。似乎它在调用 Web 服务时停止。无论如何我可以让后台任务调用应用程序代码中的方法吗?