C# 启动应用程序的新实例,防止删除

C# 启动应用程序的新实例,防止删除,c#,windows-phone-7,silverlight-4.0,C#,Windows Phone 7,Silverlight 4.0,我开发了一个在windows phone上运行良好的应用程序。该应用程序的本质是不需要支持墓碑。也就是说,每次都可以启动一个新实例 问题是如何防止我的应用程序被删除?例如,如果用户在应用程序中单击开始按钮,我需要终止该应用程序,这样当他按back键时,该应用程序将以新实例启动 任何帮助都将不胜感激!:) 在您拥有的每个页面的OnNavigatedTo(或者您可以覆盖PhoneApplicationPage)中,只需设置一个变量,使每个页面检查返回到原始页面。从那里,您可以像重新开始一样重新启动

我开发了一个在windows phone上运行良好的应用程序。该应用程序的本质是不需要支持墓碑。也就是说,每次都可以启动一个新实例

问题是如何防止我的应用程序被删除?例如,如果用户在应用程序中单击开始按钮,我需要终止该应用程序,这样当他按back键时,该应用程序将以新实例启动


任何帮助都将不胜感激!:)

在您拥有的每个页面的OnNavigatedTo(或者您可以覆盖PhoneApplicationPage)中,只需设置一个变量,使每个页面检查返回到原始页面。从那里,您可以像重新开始一样重新启动

如果函数名不是100%,请道歉,在Visual Studio不可用的情况下键入此项

有些逻辑。。 在App.xaml.cs中

public static bool Activated = false;

ApplicationActivated()
{
  Activated = true;
}
在每一页中:

 public override void OnNavigatedTo(object sender, NavigationEventArgs e)
    {
       base.OnNavigatedTo(sender,e);
        if (App.Activated)
              if (NavigationService.CanGoBack){
                     NavigationService.GoBack();
                     return; //remember that GoBack() is async and will not cause this function to end early! you must return

              }
              else { App.Activated = false; } 

        }

    }

您应该能够从应用程序激活事件中执行此操作。在普雷曼戈,您通常会这样做:

    private void Application_Activated(object sender, ActivatedEventArgs e) 
    { 
        var state = PhoneApplicationService.Current.State; 
        if (state.ContainsKey("YourKeyName")) 
        { 
            // Typically rehydrate. Clear app state
        } 
    }
if (e.IsApplicationInstancePreserved) 
   {
       // Clear State
   } 
在Mango中,您可能还需要使用IsApplicationInstancePreserved属性。此属性指示为您保留数据的时间,您无需加载数据。看

因此,您需要添加如下内容:

    private void Application_Activated(object sender, ActivatedEventArgs e) 
    { 
        var state = PhoneApplicationService.Current.State; 
        if (state.ContainsKey("YourKeyName")) 
        { 
            // Typically rehydrate. Clear app state
        } 
    }
if (e.IsApplicationInstancePreserved) 
   {
       // Clear State
   } 

有了芒果,墓碑不再像过去那样瞬间就能为用户快速切换应用程序。你为什么要阻止这种情况发生?@Frazell墓碑记录或处于休眠状态会对我的应用程序造成严重破坏,我不知道如何修复它(krolth和@willmel感谢您的详细回复。不过,我仍然找不到解决问题的方法。我会再详细说明一下。我有一个应用程序,只有一个页面,使用摄像头和调度计时器对象。当我从“开始”菜单启动它时,它工作正常。当我使用“开始”键或“后退”键终止应用程序时,我会出错当我重新启动时。我怀疑这是因为操作系统正在尝试保存计时器和相机对象的状态,但无法成功保存。我只需要确保应用程序每次都重新启动,无论它是如何启动的。:)我找到了修复此问题的方法!我刚刚在主应用程序页面前面添加了一个缓冲区页面。当应用程序在停用后恢复时,我使用它来创建主页的新实例。不太优雅。但它是有效的!:)谢谢大家。。。