目前的智能手机几乎都支持了多任务,人们也喜欢同时使用很多个软件,比如开个音乐app听歌,然后后台开着微信,qq之类的,和同学等有一搭没一搭的闲聊的,然后开着知乎之类的刷刷这玩,但是由于手机的内存有限,不能不节制地同时运行着多个app,所以在内存不多的时候,系统会关掉一部分app,来释放出内存给其他app使用。
但是如果你在一个app的某一个页面填写信息,你要填个比较长的信息的时候,你换到别人的app,,换回来的时候发现app被后台关了,之前填的数据没有了,你绝对会不爽的,这个时候就需要在被后台关闭的时候来调用信息的保存,然后在唤醒的时候,将数据填充上
这部分就需要对WP的生命周期的理解了,我们在首次进入的时候调用
private void Application_Launching(object sender, LaunchingEventArgs e)
{
Appdata = "进入的时间载入";
}
在被唤醒的时候 // 激活应用程序(置于前台)时执行的代码
// 此代码在首次启动应用程序时不执行
private void Application_Activated(object sender, ActivatedEventArgs e)
{
if (e.IsApplicationInstancePreserved)
{
return;
}
if (PhoneApplicationService.Current.State.ContainsKey("data"))
{
Appdata = PhoneApplicationService.Current.State["data"] as string + "重新启动";
}
}
在被后台关闭的时候 private void Application_Deactivated(object sender, DeactivatedEventArgs e)
{
if (!string.IsNullOrEmpty(Appdata))
{
PhoneApplicationService.Current.State["data"] = Appdata;
}
}
然后在相应的需要保存数据的页面上 bool isNewPage = false;
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
if (isNewPage)
{
if (!string.IsNullOrEmpty((Application.Current as App).Appdata))
{
txt.Text = (Application.Current as App).Appdata;
}
isNewPage = false;
}
}