Активируется ли действие приостановки при длительном удерживании кнопки выключения питания?
Система принудительно выключится при длительном нажатии кнопки выключения питания. И система не смогла убедиться, что Current user session
завершено. Таким образом, обработчик событий приостановки не мог быть вызван правильно.
Из жизненный цикл приложения универсальной платформы Windows (UWP) для Windows 10< /а>:
Текущий сеанс пользователя основан на входе в систему Windows. Пока текущий пользователь не вышел из системы, не выключил или не перезапустил Windows, текущий сеанс пользователя сохраняется при таких событиях, как проверка подлинности на экране блокировки, смена пользователя и т. д.
Итак, перед закрытием приложение все еще находилось в папке Current user session
. И Suspended
будет вызываться при выключении питания (выключении).
Обратите внимание, что вы не можете протестировать его в модели отладки в Visual Studio. Потому что, когда вы выключите систему, Visual Studio сначала выйдет из модели degbug. Событие Suspended
не будет вызвано, как ожидается. Вы можете проверить с помощью следующего кода.
private void OnSuspending(object sender, SuspendingEventArgs e)
{
var stringBulider = new StringBuilder();
var deferral = e.SuspendingOperation.GetDeferral();
Windows.Storage.ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
Object value = localSettings.Values["exampleSetting"];
stringBulider.Append(value.ToString() + "/Next");
localSettings.Values["exampleSetting"] = stringBulider.ToString();
deferral.Complete();
}
Каждый раз, когда вы отключаетесь, stringBulider
будут добавляться по одному.
person
Nico Zhu - MSFT
schedule
19.04.2018