0

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

有谁知道这个例外或面临这种情况?如果有人可以指导我这将非常有帮助。

4

2 回答 2

1

引发Application_Deactivated事件后,您有 10 秒的时间完成任务。之后,您的申请将被终止。

因此,崩溃的发生可能是因为您的代码需要 10 多秒才能完成。

于 2012-07-19T13:23:03.863 回答
0

我曾经在 Application_Deactivated 中更新 livetile,但这会导致恢复问题,因此我删除了该功能。

其他人在不同的区域发现了相同的问题和更新: http ://www.japf.fr/2012/12/updating-the-live-tiles-when-the-exits-wp8-weirdness/

于 2015-04-27T01:08:28.810 回答