1

バックグラウンドエージェントで、アプリケーションのライブタイルの1つを作成(または更新)します。これは期待どおりに機能します。
問題は、このライブタイル画面をクリックするとちらつきますが、アプリが「再起動」も「表示」もされないことです。
どうしたの?
コードのごく一部を添付しますが、必要に応じてさらに追加をお願いします。

メインページ

public partial class MainPage : PhoneApplicationPage
{
    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        base.OnNavigatedTo(e);
    }
    public MainPage()
    {
        InitializeComponent();

        // Runs background agent: code is simplified
        StartAgent();
    }
}

背景エージェント

public class TileAgent : ScheduledTaskAgent
{
    protected override void OnInvoke(ScheduledTask task)
    {
        Deployment.Current.Dispatcher.BeginInvoke(() =>
        {
            Vars.UpdateTiles();
        });

        NotifyComplete();
    }
}

静的クラス

public class Vars
{
    private static Uri uri = new Uri(
        "/MainPage.xaml?tile",
        UriKind.RelativeOrAbsolute);
    private static RadExtendedTileData ExtendedData
    {
        get
        {
            return new RadExtendedTileData()
            {
                VisualElement = frontTile,
                BackVisualElement = backTile,                    
            };
        }
    }

    public static void UpdateTiles()
    {
        // I perform some task here

        // Then I create/update live tile
        Telerik.Windows.Controls.LiveTileHelper.CreateOrUpdateTile(
            ExtendedData, uri);
    }
}
4

1 に答える 1

3

/MainPage.xaml?tile=true代わりに試してください/MainPage.xaml?tile...

そしてNotifyComplete()、ディスパッチャ呼び出しに移動します。それ以外の場合は、操作が完了する前に呼び出されます。

于 2012-07-05T16:02:48.997 に答える