Search code examples
c#windows-phone-7live-tile

Click on LiveTile doesn't show/run my app


In a background agent I create (or update) one of application live tiles and this works as expected.
Problem is that when I click this live tile screen flickers but my app is not "restarted" nor "shown".
What's wrong?
I attach small part of the code, but ask for more is you need.

MAIN PAGE

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

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

BACKGROUND AGENT

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

        NotifyComplete();
    }
}

STATIC CLASS

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);
    }
}

Solution

  • Try /MainPage.xaml?tile=true instead of /MainPage.xaml?tile...

    And move NotifyComplete() into the dispatcher call. Otherwise it will be called before the operation has been completed...