2011-01-04 16 views
1

Ich habe eine WebBrowserTask, die aufgerufen wird, wenn eine Schaltfläche geklickt wird:WebBrowserTask Fehler beim Drücken der Zurück-Taste sehr schnell (WP7)

private void button1_Click(object sender, RoutedEventArgs e) 
    { 
     WebBrowserTask webBrowserTask = new WebBrowserTask(); 
     webBrowserTask.URL = "http://msdn.microsoft.com"; 
     webBrowserTask.Show(); 
    } 

, wenn ich diesen Knopf in meiner App klicken und dann auf mich die Rückseite Taste des Geräts sehr schnell, stürzt meine App, und die Application_Activated() -Methode nicht einmal aufgerufen ..

Ist das ein Fehler des SDK? Sie können das Problem sehr einfach auf dem Emulator oder auf Ihrem Gerät reproduzieren.

Problemumgehungen? Dies scheint bei allen Aufgaben (SMS, E-Mail usw.) zu passieren.

Danke

Antwort

1

Sind Sie sicher, dass Ihr Application_Activated übersprungen wird und nicht Ihr Konstruktor?

Wenn es abstürzt, weil Ihre Konstruktoren nicht aufgerufen werden, ist es wahrscheinlich, dass Sie Ihre App schnell genug neu gestartet haben, damit sie nicht verfälscht wurde, wie Peter hier ausführlicher beschreibt.

How to correctly handle application deactivation and reactivation - Peter Torr's Blog

Ist auch dies nicht der Fall ist, ist es möglich, die App zunächst nicht die Werkzeuge RTM erstellt wurde und muss nach den neuen Projektvorlagen migriert werden?

+0

die seltsame Sache ist, dass, nachdem es beendet wird, wenn ich Ausführen in Visual Studio drücke, wird es fortgesetzt, wo es aufgehört hatte, durch den Aufruf der Methode activate! – johnX99

+0

Wenn ich versuche, es vom Gerät fortzusetzen, passiert nichts, es bleibt auf dem Ladebildschirm stehen und bleibt dort für immer. – johnX99

+0

ich kann es mir sicherlich anschauen, es zu reproduzieren, kann ich zuerst fragen, haben Sie dieses Verhalten in einem leeren Projekt reproduziert? Wenn kleine Code-Bits benötigt werden, um sie zu repro- duzieren, könnten Sie uns diese in Ihrer ursprünglichen Frage als Bearbeitung zeigen? (ps am besten, um in Kommentaren zu chatten, anstatt neue Antworten zu geben) –

0

zu einer anderen Seite navigieren/Aufgabe ist nicht ein synchroner Prozess, in dem Sie die Seite aufrufen und für eine Rückkehr Ergebnis warten. Wenn Sie schnell genug sind, schließen Sie Ihre Anwendung auf die normale Weise, bevor die Aufgabe überhaupt gestartet wurde.

+0

Wenn dies der Fall war, sollte es die Application_Closing() -Methode ausführen, tut dies aber nicht. Oder wenn es einen Fehler in der Application_Deactivated() -Methode gab, sollte ich eine Ausnahme oder etwas bekommen. Die Application_Deactivated() -Methode wird normal ausgeführt. – johnX99

Verwandte Themen