后台代理在本地环境中工作正常但在应用程序提交到应用商店后失败

时间:2014-04-10 09:34:33

标签: windows-phone-8 live-tile xap background-agents

我有一个使用PeriodicTask后台代理的wp8应用程序。

任务更新多个实时图块的信息, 使用POST Client从我的服务器获取标题和图片网址以更新实时图块。

后台代理在调试和释放模式下工作得很好。使用XAPDeployement工具将.xap文件部署到我的设备中时,后台代理也可以正常工作。

然而,在提交给wp app store之后它无效,无论它是否为测试版。 如果应用程序是从商店下载的,后台代理程序从未运行过,几分钟后它就会被系统阻止。

由于XAP文件相同,怎么会出错?

代码的一部分:

public static Task<string> jsonPostClientTask(Dictionary<string, object> parameters, string url)
    {
        var results = new TaskCompletionSource<string>();
        PostClient proxy = new PostClient(parameters);
        try
        {
            proxy.DownloadStringCompleted += (sender, e) =>
            {
                if (e.Error == null)
                {
                    string response = e.Result.ToString();
                    results.TrySetResult(response);
                }
                else
                {
                    results.TrySetResult("");
                    results.TrySetException(e.Error);
                }

            };
            proxy.DownloadStringAsync(new Uri(url));
        }
        catch
        {
            results.TrySetResult("");
        }
        return results.Task;
    }

ScheduledAgent类:

  protected override void OnInvoke(ScheduledTask task)
    {
        foreach (var tile in tileList)
        {
            string dataString = jsonPostClientTask(parameters, url);

            //update tile in used
            FlipTileData tileData = new FlipTileData()
            {
                BackContent = "string content",
                WideBackContent = "string back content",

                BackBackgroundImage = new Uri("http://xxxx.xxx/xxx.png", UriKind.RelativeOrAbsolute),
                WideBackBackgroundImage = new Uri("http://xxxx.xxx/xxx.png", UriKind.RelativeOrAbsolute),
            };

            ShellTile primaryTile = ShellTile.ActiveTiles.First();
            if (primaryTile != null)
                primaryTile.Update(tileData);
        }


    }

0 个答案:

没有答案