更新Live Tile on Application Deactivated是一个好习惯吗?

时间:2012-07-19 12:25:54

标签: windows-phone-7 comexception live-tile

我没有使用后台代理来更新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时引发异常

有没有人知道这个例外还是遇到过这样的情况?如果有人可以指导我,那将会非常有帮助。

2 个答案:

答案 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/