2015-08-26 6 views
0

MSDN-сайт имеет только старую информацию, применимую для приложений Windows 8/8.l Metro/Pseudo UWP. В этих приложениях Microsoft предоставляет сложный вспомогательный класс подвески, который недоступен в шаблонах приложений Windows 10 UWP Blank. Итак, как мне обрабатывать приостановку в Windows 10 UWP-приложениях. Я не нашел никакой информации о том, как обрабатывать приостановку в этих приложениях.Как правильно обрабатывать приостановку приложений Windows 10 на Visual C# или C++?

Кто-нибудь знает, как мне обрабатывать подвеску?

+0

что вы имеете в виду 'handle'? Вы хотите, чтобы ваше приложение было уведомлено о приостановке/пробуждении или вашем приложении, чтобы инициировать приостановку/пробуждение? – user3528438

+0

Нет Я хочу сохранить состояние приложения (заполненные формы, текст, текущая страница и т. Д.). Насколько мне известно, я должен сохранить это, чтобы восстановить это состояние после того, как пользователь переключится обратно на приложение, потому что иногда система освобождает приложение из памяти, чтобы обеспечить больше памяти другим приложениям или приложениям uwp. – Sebi2020

+0

Если вы напрямую скопируете класс подвески из проекта win8.1 в проект win10, будет ли это нормально? –

ответ

0

Пример, который вы ищете, не существует в шаблонах по умолчанию, выданных визуальной студией. Существует проект создания шаблона, который имеет эту функциональность. Вы можете найти эти шаблоны на ...

https://github.com/Windows-XAML/Template10

Вот код из шаблона 10 о приостановлении и возобновлении

Resuming += (s, e) => { OnResuming(s, e); }; 
      Suspending += async (s, e) => 
      { 
       // one, global deferral 
       var deferral = e.SuspendingOperation.GetDeferral(); 
       try 
       { 
        foreach (var service in WindowWrapper.ActiveWrappers.SelectMany(x => x.NavigationServices)) 
        { 
         // date the cache (which marks the date/time it was suspended) 
         service.FrameFacade.SetFrameState(CacheDateKey, DateTime.Now.ToString()); 
         // call view model suspend (OnNavigatedfrom) 
         await service.SuspendingAsync(); 
        } 
        // call system-level suspend 
        await OnSuspendingAsync(s, e); 
       } 
       catch { } 
       finally { deferral.Complete(); } 
      };