2014-09-02 15 views
12

In WP7 e WP8 ho solo bisogno di cancellare il backstack in una pagina, quindi premere il tasto Indietro e l'app è chiusa. In WP8.1 faccio Frame.BackStack.Clear(), premo Indietro e l'app si limita a minimizzare .. Come ucciderlo con il pulsante Indietro?Come chiudere un'applicazione Windows Phone 8.1

risposta

17

È possibile aggiungere, nella definizione della pagina principale:

Windows.Phone.UI.Input.HardwareButtons.BackPressed += HardwareButtons_BackPressed; 

Poi

private void HardwareButtons_BackPressed(object sender, Windows.Phone.UI.Input.BackPressedEventArgs e) 
{ 
    if (!e.Handled && Frame.CurrentSourcePageType.FullName == "YourApp.MainPage") 
     Application.Current.Exit(); 
} 

Attenzione: Come altri hanno detto, non si dovrebbe usare questo e lasciare che il sistema di gestire la chiusura app . Ad esempio, se si utilizzano le Informazioni sulle applicazioni, ho scoperto che non vengono inviate ad Azure in modalità di rilascio

+0

Non penso che avrà davvero bisogno dell'istruzione 'if'. Se 'e.Handled' fosse già stato gestito probabilmente non diventerebbe una bolla per' HardwareButtons_BackPressed' credo. –

+3

Grazie. Questo WP8.1 è totale sh * t. Tutto è diverso da 7,8 .. –

+2

@ V.G. totalmente d'accordo con "Tutto è diverso da 7,8", ma nella questione o "sh * t" lo metterei accanto a "7, 8" piuttosto che "8.1" (che implica WP8.1 _WinRT_) :) – Sevenate

3

Penso che quanto sopra sia stato rifiutato. L'uscita è ora un evento.

Prova

Application.Current.Terminate();

+2

Dove hai trovato Terminate? Vedo solo [Esci] (https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.application.exit (v = win.10) .aspx) –

+0

Stai lavorando in Windows Phone 8.0? O stai codificando in 7.1. – MattyMerrix

+1

Sto usando WP 8.1 RT e la domanda era anche il punto di questa versione. –

2

MSDN consiglia di non chiudere le applicazioni in Windows 8.1:

Si consiglia di non chiudersi le applicazioni a livello di codice, a meno assolutamente necessario. Ad esempio, se un'app rileva una perdita di memoria, è possibile chiuderla per garantire la sicurezza dei dati personali dell'utente. Quando chiudi un'applicazione in modo programmatico, il sistema considera questo come un arresto dell'applicazione .

https://msdn.microsoft.com/en-us/library/windows/apps/hh464925.aspx#close

3

si può semplicemente creare un pulsante utilizzando XAML e quindi aggiungere il codice nelle vostre principali xaml.cs pagina

Application.Current.Exit();

Problemi correlati