2012-01-20 60 views
0

我想知道當應用程序從WP7.5中的停用狀態返回時是否可以刷新日期時間。我的應用程序基本上是一種日曆類型,當應用程序啓動時,當前日期突出顯示。所以如果我啓動應用程序,然後按開始按鈕,我的應用程序進入停用狀態,然後去設置和更改時區,自然日期和時間可能會改變,然後回到我的應用程序,它保留舊日期。如何刷新WP中重新激活應用程序的日期時間

例如。 假設當前日期爲20,並且我們更改日期爲19的時區,理想情況下我的應用應突出顯示19,但事實並非如此。我假設它在應用程序進入停用狀態之前成爲它,它存儲所有狀態,並在它返回時載入相同的數據。無論如何,我可以刷新日期?

Alfah

回答

2

假設你有一個包含名爲DateToDisplayAsToday日期時間字段的模型類,並且該模式中的App.xaml訪問,你會想要在App.xaml.cs中的以下內容

private void Application_Launching(object sender, LaunchingEventArgs e) 
    { 
     // Application_Launching fires when the app starts up. 

     // retrieve any data you persisted the last time the app exited. 

     // Assumes you have a local instance of your model class called model. 
     model = new model(); 
    } 

    private void Application_Activated(object sender, ActivatedEventArgs e) 
    { 
     // Application_Activated fires when you return to the foreground. 
     // retrieve any data you persisted in the Application_Deactivated 
     // and then you can set the current DateTime 
     model.DateToDisplayAsToday = DateTime.Now; 
    } 

    private void Application_Deactivated(object sender, DeactivatedEventArgs e) 
    { 
     // persist an data you don't want to lose during tombstoning 
    } 

    private void Application_Closing(object sender, ClosingEventArgs e) 
    { 
     // persist any data you want to keep between separate executions of the app 
    } 
+0

顯然,我發現,即使通過更改時區,它不會得到反應時,應用程序重新激活。我檢查了TimeZoneInfo.local。它甚至在更改後仍保持同一時間。 :( – alfah

3

這已經有一段時間,因爲我已經做任何WP7的發展,但我敢肯定有一個事件,當應用程序被重新激活募 - 你就不能查詢DateTime.NowDateTime.Today在這一點?

編輯:看着文檔,我想你想要LaunchingActivated事件。 (Launching,讓你檢查的時間甚至在推出初期; Activated要成爲休眠後重新激活)

+0

謝謝Jon。問題是DateTime.Today總是返回應用程序第一次啓動時的日期(如果應用程序已停用)。除非應用程序退出並重新開始,否則DateTime.Now和DateTime.Today將返回舊日期。 – alfah

+1

@alfah:這聽起來很奇怪 - 如果你使用'DateTime.Now',它應該*總是*給你當前的時間。我相信這不僅僅是給你「原始時間」 - 它*可能*沒有注意到時區變化,無可否認......診斷,檢查'TimeZoneInfo.Local'之前和之後......如果*是*改變,你可能只能使用'DateTime.UtcNow'和'TimeZoneInfo.Local'。 –

+0

if(dateToDisplay == System.DateTime.Now.Day && m_monthBuffer [i,j] == m_selectedDate.Month) {// do somthing}我已經使用了這個條件,並且System.DateTime.Now給了我一個20年代1月19日當我改變了時區,而應用程序處於停用狀態。 。 } – alfah

相關問題