如何在升级后停止Live Tile计划

时间:2011-12-27 11:34:25

标签: windows-phone-7 live-tile

我有一个Windows Phone 7应用程序,目前使用Live Tile计划进行更新。

新版本的应用程序使用后台任务来更新切片。

然而,在手机上升级应用程序后,如果主要磁贴上已经运行了磁贴调度,则它不会停止更新。

如果正在运行,我需要停止磁贴计划。

创建新计划并停止它不起作用:

var t = new ShellTileSchedule()
                {
                    MaxUpdateCount = 1,
                    Recurrence = UpdateRecurrence.Onetime,
                    StartTime = DateTime.Now,
                    RemoteImageUri = new Uri("http://mysite.com/livetile.png"),
                };
t.Start();
t.Stop();

在活动磁贴中的主磁贴上创建新计划不起作用:

ShellTile mainTile = ShellTile.ActiveTiles.FirstOrDefault();
t = new ShellTileSchedule(mainTile)
                    {
                        MaxUpdateCount = 1,
                        Recurrence = UpdateRecurrence.Onetime,
                        StartTime = DateTime.Now,
                        RemoteImageUri = new Uri("http://mysite.com/livetile.png")
                     };
t.Start();
t.Stop();

2 个答案:

答案 0 :(得分:2)

由于每个应用程序只能有一个ShellTileSchedule,创建一个新应用程序,启动它,然后停止它,应该删除旧的应用程序,当然也要停止你刚创建的应用程序。

(为什么你在问之前没试过?)

答案 1 :(得分:1)

首先,这个问题是在实际部署到市场的应用程序中发生的吗? (我的意思是,是否部署了更新?)如果不是这可能与开发者应用程序实际部署到手机的方式有关。

以下是其他一些建议,我没有测试过任何建议: - 您是否尝试过从应用中删除?它是ShellTileSchedule所必需的,因此删除它可能会阻止它工作?这可能会在通过市场提交此应用程序时自动发生,但是对于测试,您可以尝试一下。 - 如果ShellTileScheduel失败,可以取消它。如果可能,您是否可以尝试删除RemoteImageUri中的PNG文件。或者用破碎的数据填充它以破坏ShellTileSchedule。我知道这不漂亮,但它可能会奏效。 - 您是否尝试将ShellTileSchedule替换为无法无限期重复使用的ShellTileSchedule?只需让它执行(最后一次)然后就完成了。

祝你好运,请告诉我们您是否以及如何修复。