locked
请问应用做第一次判断,只加载一次的内容这么写(新手请教各位) RRS feed

  • 问题

  • 比如说我有一个本地的xml放到手机数据库中,数据库不需要每次启动的时候都新建一个吧,而且我不想每次用完一次删除一次数据库,在来重新加载,因为本地数据库很大。
    2012年10月11日 7:56

答案

  • 你好,你所说的手机数据库是指什么? IsolatedStorage 吗?还有“应用做第一次判断,只加载一次的内容”,你能再解释一下吗?是每次应用程序启动时候加载一次,之后使用不再加载;还是从安装应用到卸载只加载一次,之后运行应用时不再加载?

    如果你使用 IsolatedStorage 作为“手机数据库”,并且只是想安装应用后从始至终都只加载一次,那你可以尝试使用 IsolatedStorageSettings 。在每次应用程序启动时都运行以下代码:

                if (!IsolatedStorageSettings.ApplicationSettings.Contains("IsLoaded"))
                {
    		// 在此添加自己的代码,加载并读取 xml 
                    IsolatedStorageSettings.ApplicationSettings.Add("IsLoaded", true);
                }

    这样你在 if 中的语句就只会在应用程序第一次启动时执行。

    如果你想每次启动应用时都执行一次,之后只要应用程序还在运行都不再加载,那你可以尝试使用 IsolatedStorageFile 。在App.xaml.cs中添加以下代码:

            // Code to execute when the application is launching (eg, from Start)
            // This code will not execute when the application is reactivated
            private void Application_Launching(object sender, LaunchingEventArgs e)
            {
    		// Obtain an isolated store for an application.
    		try
    		{
    			using (var store = IsolatedStorageFile.GetUserStoreForApplication())
    			{
    				// 在此添加自定义代码,加载并读取 xml 数据
    				// 然后将 xml 保存至 IsolatedStorage 中
    				////// 你也可以将 xml 中数据赋值给全局变量或者静态类,不必存在“手机数据库”中,这样更能提高性能
    			}
    		}
    		catch (IsolatedStorageException)
    		{
    			// TODO: Handle that store was unable to be accessed.
    
    		}
            }
            // Code to execute when the application is closing (eg, user hit Back)
            // This code will not execute when the application is deactivated
            private void Application_Closing(object sender, ClosingEventArgs e)
            {
    		// Obtain an isolated store for an application.
    		try
    		{
    			using (var store = IsolatedStorageFile.GetUserStoreForApplication())
    			{
    				// 在此添加自定义代码,删除 IsolatedStorage 中 xml 数据
    			}
    		}
    		catch (IsolatedStorageException)
    		{
    			// TODO: Handle that store was unable to be accessed.
    
    		}
            }

    以下是相关链接:

    http://www.cnblogs.com/zhangkai2237/archive/2012/02/18/2357281.html

    http://www.windowsphonegeek.com/tips/all-about-wp7-isolated-storage--intro-to-isolated-storage

    如果我理解错了,请回帖告知。

    2012年10月12日 2:48
    版主