我没有使用后台代理来更新LiveTiles。我在退出应用程序和Application_Deactivated
时更新了磁贴。
private void Application_Deactivated(object sender, DeactivatedEventArgs e)
{
CycleManager pCycMan = CycleManager.Instance;
pCycMan.WriteToIsolatedStorage();
ResourceManager resMan = new ResourceManager("xxx.AppResources", Assembly.GetExecutingAssembly());
ShellTile PrimaryTile = ShellTile.ActiveTiles.First();
StandardTileData tile = new StandardTileData();
try
{
if (PrimaryTile != null)
{
tile.BackTitle = resMan.GetString("liveTileTitle");
tile.BackBackgroundImage = new Uri("/Background.png", UriKind.Relative);
if (pCycMan.GetStartDate() == pCycMan.GetDefaultDate())
{
tile.Title = resMan.GetString("liveTileNotTrackingStatus");
}
else
{
tile.Title = m_liveTileText;
}
PrimaryTile.Update(tile);
}
}
catch(Exception)
{
}
}
这样做是一种好习惯吗?该应用程序已发布,我收到了一个带有COMException的StackTrace。它显示在Microsoft.Phone.Shell.ShellTile.Update
XXX.App.Application_Deactivated
时引发异常
有没有人知道这个例外还是遇到过这样的情况?如果有人可以指导我,那将会非常有帮助。
答案 0 :(得分:1)
当引发Application_Deactivated
事件时,您有10秒钟完成任务。
之后,您的申请将被终止。
因此,可能发生了崩溃,因为您的代码需要10秒以上才能完成。
答案 1 :(得分:0)
我曾经在Application_Deactivated中更新了livetile,但是这会导致恢复问题,所以我删除了该功能。
其他人在不同的区域发现了相同的问题和更新: http://www.japf.fr/2012/12/updating-the-live-tiles-when-the-exits-wp8-weirdness/