2015-07-27 13 views
8

Nelle app universali di Windows 8.1, le modalità di sospensione/ripresa sono state gestite utilizzando le classi NavigationHelper.cs e SuspensionManager.cs incluse nel modello APP. Queste classi non sembrano essere presenti nelle app UWP di Windows 10. C'è un modo in cui possiamo gestire gli stati di sospensione/ripresa?Gestione di sospensione, ripresa e attivazione in Windows 10 UWP

risposta

4

C'è una struttura interessante sviluppata dalla comunità (ma principalmente penso a Jerry Nixon, Andy Wigley ecc.) Chiamata Template10. Template10 ha una classe Bootstrapper con i metodi virtuali OnSuspending e OnResuming che è possibile sovrascrivere. Non sono sicuro che esista un esempio esatto di sospensione/ripresa con Template10, ma l'idea sembra essere quella di fare la classe App.xaml.cs inherit from this Bootstrapper in modo da poter sovrascrivere facilmente i metodi che ho citato.

sealed partial class App : Common.BootStrapper 
{ 
    public App() 
    { 
     InitializeComponent(); 
     this.SplashFactory = (e) => null; 
    } 

    public override Task OnStartAsync(StartKind startKind, IActivatedEventArgs args) 
    { 
     // start the user experience 
     NavigationService.Navigate(typeof(Views.MainPage), "123"); 
     return Task.FromResult<object>(null); 
    } 

    public override Task OnSuspendingAsync(object s, SuspendingEventArgs e) 
    { 
     // handle suspending 
    } 

    public override void OnResuming(object s, object e) 
    { 
     // handle resuming 
    } 
} 
2

La soluzione di cui sopra funzionerà solo per le persone che installano Template10. La soluzione generica è,

incollare queste righe nel costruttore di App.xaml.cs

 this.LeavingBackground += App_LeavingBackground; 

     this.Resuming += App_Resuming; 

Si sarà simile a questa

public App() 
    { 
     this.InitializeComponent(); 
     this.Suspending += OnSuspending; 
     this.LeavingBackground += App_LeavingBackground; 

     this.Resuming += App_Resuming; 
    } 

Questi sono i metodi, anche se è possibile premere TAB e si autogenereranno.

private void App_LeavingBackground(object sender, LeavingBackgroundEventArgs e) 
    { 

    } 

    private void App_Resuming(object sender, object e) 
    { 

    } 

La metodi LeavingBackground e quello non menzionati qui EnteredBackground sono di recente aggiunti UWP.

Prima di utilizzare questi metodi, riprendiamo e sospendiamo per salvare e ripristinare ui, ma ora è il posto consigliato per farlo. Anche questi sono gli ultimi posti in cui eseguire il lavoro prima che l'app venga ripresa. Quindi il lavoro su questi metodi dovrebbe essere un piccolo ui o altre cose come il remake dei valori che sono stantii come un metodo da lungo tempo qui influirà sul tempo di avvio dell'app durante la ripresa.

Fonte Windows dev material, Windoes dev material 2

Grazie, e hanno una buona giornata.

Problemi correlati