两种情况:
用户在应用运行时关闭设备。
当应用程序正在运行时,设备会自行关闭,因为电池电量不足。
生命周期会发生什么?如果我理解正确,当用户关闭应用程序时,应用程序将被暂停,然后终止。两种情况都会发生什么?
我无法对其进行调试,因为连接到调试器时应用程序未被暂停。
答案 0 :(得分:1)
我在计算机和 Windows phone 上进行了测试。根据我的测试结果,当关闭时,根据不同设备,应用表现不同。以下是我的测试结果:
对于方案1:用户在应用运行时关闭设备
在计算机上(版本:Windows 10企业版,版本:1511,操作系统版本:10586.218):应用程序终止而不挂起。
在Windows Phone上(Lumia 929和Lumia 950,版本:1511,操作系统版本:10586.218):应用程序暂停,然后终止。
对于方案2:设备关闭,因为应用程序运行时电池电量不足
在Windows Phone上(Lumia 929,版本:1511,操作系统版本:10586.218):应用暂停,然后终止。
我尚未在所有设备上对其进行测试,因此您可以根据需要使用以下测试解决方案在您自己的设备上进行测试。
我的测试解决方案:
我的测试代码:
App.xaml.cs
private void OnSuspending(object sender, SuspendingEventArgs e)
{
var deferral = e.SuspendingOperation.GetDeferral();
//TODO: Save application state and stop any background activity
MainPage.SaveData();
deferral.Complete();
}
MainPage.xaml.cs中
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
}
public static void SaveData()
{
ApplicationData.Current.LocalSettings.Values["txt"] = DateTime.Now.ToString();
}
private void btnShowText_Click(object sender, RoutedEventArgs e)
{
object settingVal = null;
if (ApplicationData.Current.LocalSettings.Values.TryGetValue("txt", out settingVal))
{
txtToSave.Text = settingVal.ToString();
}
}
}
MainPage.xaml中
<StackPanel>
<Button Name="btnShowText"
Width="250"
Margin="10"
Background="Gray"
Click="btnShowText_Click">
Get the last suspended time
</Button>
<TextBox Name="txtToSave"
Width="200"
Margin="10"
HorizontalAlignment="Left"
Header="Last suspended time:"
IsReadOnly="True"
TextWrapping="Wrap" />
</StackPanel>
答案 1 :(得分:0)
在应用程序运行时关闭设备时,它会终止。
您可以使用Visual Studio调试应用程序的挂起状态,按F5进入正常调试模式。然后使用顶部工具栏中的Lifecycle Events
来调试暂停的恢复事件。关于这一点的更多信息https://msdn.microsoft.com/en-us/library/hh974425.aspx