我開發了一個在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
芒果墓碑是不是即時的,因爲它曾經是,使快速切換應用程序的用戶。你爲什麼要防止這個? –