Windows Phone 数据保存和显示

来源:互联网 发布:淘宝不能货到付款吗 编辑:程序博客网 时间:2024/05/22 08:20

目前的智能手机几乎都支持了多任务,人们也喜欢同时使用很多个软件,比如开个音乐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;            }        }

0 0