
Ergebnis 1 bis 4 von 4
-
Robby Light Gast
Hallo Entwickler,
ich vermute fast einen Bug im Background Task gefunden zu haben, weil ich mir das Verhalten meines Codes nicht anders erklären kann.
Ich habe einen Background Agent, der den Titel aller Tiles meiner App durch einen Parameter aus der NavigationUri des Tiles ersetzten soll.
Sobald ich aber einen Substring der NavigationUri Abfragen möchte, bekomme ich eine OutOfRangeException und die Locals zeigen mir an, dass der String in dem ich meine Uri speicher lediglich ein "/" enthält.
Wenn ich aber den Titel meines Tiles gleich dem String mit der Uri setze funktioniert es wunderbar.
Nur dass ich halt nicht die ganze Uri möchte, sondern bloß einen Teil davon.
Code:protected override void OnInvoke(ScheduledTask task) { foreach (ShellTile cTile in ShellTile.ActiveTiles) { StandardTileData Update = new StandardTileData(); string navUri = cTile.NavigationUri.ToString(); // Update.Title = navUri; <- Funktioniert! Update.Title = navUri.Substring(2, 4); // <- Funktioniert nicht cTile.Update(Update); } NotifyComplete(); }
Ich kann mir das Verhalten nicht erklänren. (Und ja, meine Uri ist natürlich eigentlich schon lang genug für die Substring Anweisung)
Ich freue mich auf Kommentare und hoffe sehr, dass wir eine Lösung finden können.
-
- 08.12.2011, 12:12
- #2
Ohne dass ich jetzt selbst etwas getestet habe, schreibe ich hier mal, was ich mir denke:
ShellTile.ActiveTiles enthält alle Tiles deiner App - insbesondere auch den "Haupt"-Tile. Dieser ist meines Wissens nach immer der erste in der Collection und müsste logischerweise immer die NavigationUri "/" haben. Diese kann man ja auch gar nicht beeinflussen, da er eben auf den "Haupteinstiegspunkt" der App zeigt.
Da du dich wahrscheinlich nur für die Secondary Tiles interessierst, solltest du wahrscheinlich in der Schleife den ersten Tile in der Collection überspringen, um das von dir gewünschte Verhalten zu bekommen.
-
- 08.12.2011, 12:17
- #3
Ich habe das jetzt mal getestet.
Ich habe ein Tile erstellt und dann den Code ausgeführt.
Dein Problem liegt dadrin, dass anscheinend Standardmässig schon ein Element in den ActiveTiles drin ist, welches nur eine Uri mit "/" hat. Dadurch stürzt dein Programm dann ab.
füge ein "using System.Linq;" am Anfang ein und ändere deinen Code wie folgt:
Code:System.Collections.Generic.IEnumerable<ShellTile> tiles = ShellTile.ActiveTiles.Where(x => x.NavigationUri.ToString().Length > 2); foreach (ShellTile cTile in tiles) { StandardTileData Update = new StandardTileData(); string navUri = cTile.NavigationUri.ToString(); //Update.Title = navUri; //<- Funktioniert! Update.Title = navUri.Substring(2, 4); // <- Funktioniert nicht cTile.Update(Update); }
-
Robby Light Gast
Klatsch! (Mit der flachen Hand auf die Stirn)
Au Mann, bin ich blöd. Natürlich liegt es daran. Ich habe es dir ganze Zeit mit einem Secondary Tile getestet und bin dabei natürich davon ausgegangen, dass die Schleife auch nur einmal durchlaufen wird. Warum ich das Primary Tile vergessen habe kann ich mir grad auch nicht erklären
Das kommt davon, wenn man in der Uni programmiert und mit einem Ohr der Vorlesung folgen muss...
Vielen Dank für eure Hilfe!
Ähnliche Themen
-
Reminder mit NavigationURI
Von Nemoc im Forum Windows Phone 7 EntwicklungAntworten: 3Letzter Beitrag: 05.07.2011, 18:20 -
Facebook Live Tile (Ich Tile) wiederherstellen
Von htcjoop im Forum Windows Phone 7 AllgemeinAntworten: 2Letzter Beitrag: 13.04.2011, 07:06 -
Mit 4x4 icons Home Background problem ?!!
Von Phrazer im Forum Touch HD TweaksAntworten: 2Letzter Beitrag: 05.01.2010, 21:27 -
Großes Problem, gibts Task Manager auf dem HD??
Von Nebukatnedzar im Forum Touch HD AnwendungsprogrammeAntworten: 4Letzter Beitrag: 10.03.2009, 19:44 -
Background
Von Ziegenpeter im Forum PlaudereckeAntworten: 4Letzter Beitrag: 03.03.2005, 13:24
Pixel 10 Serie mit Problemen:...