Tile NavigationUri im Background Task Problem Tile NavigationUri im Background Task Problem
Danke Danke:  0
Ergebnis 1 bis 4 von 4
  1. 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();
            }
    Sieht jemand spontan, was ich falsch mache?
    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.
    0
     

  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.
    1
     

  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);
                }
    Edit: Wenn leitning recht hat und es wirklich immer das erste Element ist, könntest du auch nur das erste Überspringen. Wäre allerdings sicherer, wenn du wirklich bevor du etwas updatest schaust ob die Uri die richtige Länge hat. In deinem Fall wäre am sichersten ein Length > 6
    1
     

  4. 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!
    0
     

Ähnliche Themen

  1. Reminder mit NavigationURI
    Von Nemoc im Forum Windows Phone 7 Entwicklung
    Antworten: 3
    Letzter Beitrag: 05.07.2011, 18:20
  2. Facebook Live Tile (Ich Tile) wiederherstellen
    Von htcjoop im Forum Windows Phone 7 Allgemein
    Antworten: 2
    Letzter Beitrag: 13.04.2011, 07:06
  3. Mit 4x4 icons Home Background problem ?!!
    Von Phrazer im Forum Touch HD Tweaks
    Antworten: 2
    Letzter Beitrag: 05.01.2010, 21:27
  4. Großes Problem, gibts Task Manager auf dem HD??
    Von Nebukatnedzar im Forum Touch HD Anwendungsprogramme
    Antworten: 4
    Letzter Beitrag: 10.03.2009, 19:44
  5. Background
    Von Ziegenpeter im Forum Plauderecke
    Antworten: 4
    Letzter Beitrag: 03.03.2005, 13:24

Besucher haben diese Seite mit folgenden Suchbegriffen gefunden:

wp7 background task

windows phone 7 backgrounds

phone 7 backgroundtask

windows phone 7 shelltile

windows phone uri erstellen

app wp7 navigationservice funktioniert nicht

windows phone 7 uri

wp7 default task uri

windows phone 7 background task

windows phone reminder navigationuri geht nicht

phone 7 navigation from background

background-task

windows phone navigation task

background task wp7

windows phone 7 navigationservice

background agent wp7

urinspeicher

windows phone 7 update tile navigation uri

windows phone 7 reminder navigationuri

navigationservice background agent

wp7 reminder navigation uri

windows phone 7 task navigation

background task muss noch geschlossen werden

wp7 reminder navigationuri

reminder navigationuri funktioniert nicht

Stichworte