简体   繁体   English

如何在Windows Phone中存储应用程序状态

[英]How to store Application state in windows phone

I have an Application which works totally fine when I open it once, but now the problem is if the user hits windows home key it exits the application and move my app to background. 我有一个应用程序,当我打开它时,它可以很好地工作,但是现在的问题是,如果用户按下Windows Home键,它将退出该应用程序并将我的应用程序移至后台。 Now if the user long press back key and open my application it returns to the same page from which the user hit the home key. 现在,如果用户长按返回键并打开我的应用程序,它将返回到用户按下Home键的页面。 But if the user clicks on application icon, my app starts from the beginning which I don't want. 但是,如果用户单击应用程序图标,则我的应用程序将从不需要的开头开始。 Please help me. 请帮我。 Thanks 谢谢

Tell me where should I put code so that I get the desired result. 告诉我应该在哪里放置代码,以便获得所需的结果。

My App.xaml is below: ================= 我的App.xaml如下:==================

namespace MyProj
{
    /// <summary>
    /// Interaction logic for App.xaml
    /// </summary>
    public partial class App : Application
    {

        // Easy access to the root frame
        public PhoneApplicationFrame RootFrame
        {
            get;
            private set;
        }

        // Constructor
        public App()
        {
            // Global handler for uncaught exceptions. 
            UnhandledException += Application_UnhandledException;

            // Standard Silverlight initialization
            InitializeComponent();

            // Phone-specific initialization
            InitializePhoneApplication();


            // Show graphics profiling information while debugging.
            if (System.Diagnostics.Debugger.IsAttached)
            {
                // Display the current frame rate counters.
                Application.Current.Host.Settings.EnableFrameRateCounter = true;

                // Show the areas of the app that are being redrawn in each frame.
                //Application.Current.Host.Settings.EnableRedrawRegions = true;

                // Enable non-production analysis visualization mode, 
                // which shows areas of a page that are handed off to GPU with a colored overlay.
                //Application.Current.Host.Settings.EnableCacheVisualization = true;

                // Disable the application idle detection by setting the UserIdleDetectionMode property of the
                // application's PhoneApplicationService object to Disabled.
                // Caution:- Use this under debug mode only. Application that disable user idle detection will continue to run
                // and consume battery power when the user is not using the phone.
                PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Disabled;
            }

        }

        // 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)
        {

        }

        // Code to execute when the application is activated (brought to foreground)
        // This code will not execute when the application is first launched
        private void Application_Activated(object sender, ActivatedEventArgs e)
        {
            // Restart session

        }

        // Code to execute when the application is deactivated (sent to background)
        // This code will not execute when the application is closing
        private void Application_Deactivated(object sender, DeactivatedEventArgs e)
        {
        }

        // 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)
        {
            ViewModelLocator.Cleanup();
        }

        // Code to execute if a navigation fails
        private void RootFrame_NavigationFailed(object sender, NavigationFailedEventArgs e)
        {
            if (System.Diagnostics.Debugger.IsAttached)
            {
                // A navigation has failed; break into the debugger
                System.Diagnostics.Debugger.Break();
            }
        }

        // Code to execute on Unhandled Exceptions
        private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
        {
            if (System.Diagnostics.Debugger.IsAttached)
            {
                // An unhandled exception has occurred; break into the debugger
                System.Diagnostics.Debugger.Break();
            }
        }

        #region Phone application initialization

        // Avoid double-initialization
        private bool phoneApplicationInitialized = false;

        // Do not add any additional code to this method
        private void InitializePhoneApplication()
        {
            if (phoneApplicationInitialized)
                return;

            // Create the frame but don't set it as RootVisual yet; this allows the splash
            // screen to remain active until the application is ready to render.
            //RootFrame = new PhoneApplicationFrame();
            RootFrame = new TransitionFrame();
            RootFrame.Navigated += CompleteInitializePhoneApplication;

            // Handle navigation failures
            RootFrame.NavigationFailed += RootFrame_NavigationFailed;

            // Ensure we don't initialize again
            phoneApplicationInitialized = true;
        }

        // Do not add any additional code to this method
        private void CompleteInitializePhoneApplication(object sender, NavigationEventArgs e)
        {
            // Set the root visual to allow the application to render
            if (RootVisual != RootFrame)
                RootVisual = RootFrame;

            // Remove this handler since it is no longer needed
            RootFrame.Navigated -= CompleteInitializePhoneApplication;
        }

        #endregion
    }
}

You need to implement tombstone functionality. 您需要实现逻辑删除功能。 Just read 刚读
App activation and deactivation for Windows Phone Windows Phone的应用程序激活和停用

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Windows Phone应用程序链接到商店 - Windows Phone application link to the store 如何存储从Web接收的图像并将其显示在Windows Phone 7应用程序中 - how to store an image received from the web and display it in the windows phone 7 application (Windows Phone 10)处理应用程序状态 - (Windows phone 10) Handle Application state 睡眠和/或锁定后Windows Phone应用程序的状态 - Windows Phone application state after sleep and/or lock 如何在不引发InvalidDataContractException的情况下将UserControl存储在PhoneApplicationService.Current.State中[Windows Phone 8] - How to store a UserControl in PhoneApplicationService.Current.State without throw InvalidDataContractException [Windows Phone 8] Windows Store 10、Windows Phone 10 检查应用程序是否已预加载 - Windows Store 10, Windows Phone 10 check if the application is Preloaded or not 如何在Windows Phone中获取先前的复选框状态 - How to get previous checkbox state in windows phone 如何在Windows Phone Runtime中将数据存储在数据库中? - How to store data in a database in Windows Phone Runtime? 如何在Windows Phone 7的隔离存储中存储数据 - How to store data in Isolated Storage in Windows Phone 7 如何在Windows Phone 8的按钮单击上存储图像? - How to store image on button click in windows phone 8?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM