我开发了一个在windows phone上工作正常的应用程序。该应用程序的性质是这样的,它不需要支持墓碑。也就是说,每次都可以启动一个新的实例。开始新的应用程序的实例,防止墓碑
问题是如何防止墓碑我的应用程序?例如,如果用户在应用程序中单击开始按钮,我需要终止该应用程序,以便当他点击返回键时,应用程序以新实例开始。
任何帮助将不胜感激! :)
我开发了一个在windows phone上工作正常的应用程序。该应用程序的性质是这样的,它不需要支持墓碑。也就是说,每次都可以启动一个新的实例。开始新的应用程序的实例,防止墓碑
问题是如何防止墓碑我的应用程序?例如,如果用户在应用程序中单击开始按钮,我需要终止该应用程序,以便当他点击返回键时,应用程序以新实例开始。
任何帮助将不胜感激! :)
在每个页面你有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; }
}
}
您应该能够从Application_Activated事件做到这一点。在preMango中,您通常会这样做:
private void Application_Activated(object sender, ActivatedEventArgs e)
{
var state = PhoneApplicationService.Current.State;
if (state.ContainsKey("YourKeyName"))
{
// Typically rehydrate. Clear app state
}
}
在Mango中,您可能还需要使用IsApplicationInstancePreserved属性。该属性指示何时为您保存数据,而您不需要加载该数据。见http://msdn.microsoft.com/en-us/library/microsoft.phone.shell.activatedeventargs.isapplicationinstancepreserved(v=vs.92).aspx。
所以,你需要添加像这样:
if (e.IsApplicationInstancePreserved)
{
// Clear State
}
@Frazell墓碑或被置于休眠阶段对我的应用程序造成严重破坏,我无法弄清楚如何解决它。 :( – Gowtham
芒果墓碑是不是即时的,因为它曾经是,使快速切换应用程序的用户。你为什么要防止这个? –