我开发了一款在Windows手机上正常运行的应用。应用程序的本质是它不需要支持墓碑。也就是说,每次都可以启动一个新实例。
问题是如何防止我的应用程序出现墓碑?例如,如果用户在应用程序中单击开始按钮,我需要终止应用程序,这样当他回击键时,应用程序将以新的实例启动。
任何帮助将不胜感激! :)
答案 0 :(得分:1)
在每个页面中你有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; }
}
}
答案 1 :(得分:1)
您应该能够从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
}