Domyślne szablony projektu VS2012 w stylu C# "Metro style" obejmują kod w pliku App.xaml.cs (w override OnLaunched
), aby przywrócić stan aplikacji po zawieszeniu i zakończeniu. Ten kod działa tylko wtedy, gdy LaunchActivatedEventArgs.PreviousExecutionState
jest Terminated
, tj. "Aplikacja została zakończona po zawieszeniu."Jak mogę zasymulować zakończenie mojej aplikacji Metro?
Jak mogę wymusić zawieszenie i zakończenie mojej aplikacji, aby przetestować tę funkcję zawieszenia/wznowienia w mojej aplikacji?
Czego próbowałem które nie działają:
- Jeśli używam „Zamknij aplikację” gest (Drag od góry do dołu ekranu), to następny bieg na
PreviousExecutionState
jestClosedByUser
. - Jeśli zabiję aplikację - albo za pomocą Menedżera zadań, albo (jeśli byłem debugowany) za pomocą przycisku "stop" na pasku narzędzi VS - następna wersja to
PreviousExecutionState
toNotRunning
. Jest to prawdą, nawet jeśli Menedżer zadań pokazywał aplikację jako "Zawieszone" przed zakończeniem zadania, więc wyraźnie jest bardziej zniuansowany niż opis "zakończony po zawieszeniu". - Pozwoliłoby myśleć Mogę po prostu wyłączyć z mojej aplikacji, a następnie otworzyć wiele innych aplikacji w stylu Metro, aż moja aplikacja zostanie ostatecznie wyrzucony. Ale nawet jeśli otworzę każdą aplikację w stylu Metro, która jest dostarczana z Windows 8 Release Preview, to najwyraźniej za mało pamięci, aby Windows zakończył moją aplikację. (Zakładam, że system Windows będzie mniej skłonny do zakończenia debugowanej aplikacji, więc uruchomiłem swoją aplikację na ekranie Start - bez debuggera - zanim spróbowałem.)
Wygląda na to, że jeśli Przełączam się z mojej aplikacji i wpisuję w okno StackOverflow na kilka minut, że moja aplikacja zostanie w końcu zakończona, więc być może jest na to jakiś składnik oparty na czasie. Ale jeśli muszę czekać pięć lub dziesięć minut za każdym razem, gdy moja aplikacja się zakończy, jest to dość powolny cykl testowy.
Biorąc pod uwagę, że jest to coś, co programiści będą musieli przetestować, można by pomyśleć, że to dobry i łatwy sposób na wymuszenie wstrzymania i zakończenia aplikacji. Czy jest jakaś aplikacja do testowania warunków skrajnych dostarczana z Visual Studio, która wymusi wystarczającą presję pamięci? Czy istnieje jakiś element menu w Visual Studio, który wymusi zakończenie mojej aplikacji? Jak mamy to przetestować?
Jeśli nadal chcesz przetestować zachowanie aplikacji jako „wykluczony”, zawsze można utworzyć 3 lub 4 hello aplikacje świata, które przydzielić „mało pamięci”, aby uzyskać twój system ma mało zasobów. – yms