Din applikation i Windows Phone 7 kan ej köras i bakgrunden. Men man kan ändå simulera på flera sätt att applikationen körs även fast den inte gör det. Ett av de enklaste sätten att göra detta på är att använda funktionen Live Title.

Detta är en serie korta noteringar som jag vill dela med mig efter att ha utvecklat Windows Phone appen TrafikTitt. Mer info om appen och ett index på noteringarna finns här.

Med Live Title kan man ange en url som telefonen med jämna mellanrum skall anropa för att hämta ned en bild och visa bilden istället för applikationens ikon. Detta funkar endast på om applikationens ikon är "pinnad" till startsidan på telefonen.

Hur gör man det?

var mySchedule = new ShellTileSchedule();

mySchedule.Interval = UpdateInterval.EveryHour;
mySchedule.Recurrence = UpdateRecurrence.Interval;
mySchedule.MaxUpdateCount = int.MaxValue;
mySchedule.RemoteImageUri = new Uri(http://url_till_bild, UriKind.Absolute);

mySchedule.Start();

Jag använder mig av klassen ShellTitleSchedule. I denna klass finns ett antal egenskaper:

Interval Sätter intervallet på hämtningen. Det lägsta intervallet är en timma. Andra värden är varje dag, vecka eller månad.
Recurrence Sätter om man vill att det endast ske en gång eller flera gånger.
MaxUpdateCount Hur många gånger som uppdateringen skall göras.
RemoteImageUri Länken till bilden. Bilden får max vara 80Kb och ta max 15 sekunder att ladda ned.

När man har kört denna kod kan man stänga ned sin applikation och Windows Phone kommer att köra denna uppdatering utan att din applikation behöver göra någonting.

Observera!

När man testar detta, både i telefonen och i emulatorn, så börjar inte den första uppdateringen förrän det första intervallet har förfallit. Alltså, har jag satt på en-timmas-intervall, så kommer jag inte att se något hända förrän en timma har gått. (Jag har faktiskt inte provat de andra intervallen.)