Как обновить дату и время, когда приложение повторно активируется в WP - PullRequest
0 голосов
/ 20 января 2012

Я хотел бы знать, возможно ли обновить дату и время, когда приложение вернется из деактивированного состояния в WP7.5.Мое приложение в основном календарного типа, и когда приложение запускается, текущий день выделяется.

Итак, если я запускаю приложение, затем нажимаю кнопку запуска, мое приложение переходит в деактивированное состояние, затем переходит в настройки и меняет часовой пояс, естественно, дата и время могут измениться, а затем возвращаться в мое приложение, он сохраняет старую дату.

например.Предположим, что текущая дата равна 20, и мы меняем часовой пояс, где дата равна 19, в идеале мое приложение должно выделять 19, но это не так.Я предполагаю, что оно становится до того, как приложение переходит в деактивированное состояние, оно сохраняет все состояния и, когда оно возвращает, загружает те же данные.Можно ли как-нибудь обновить дату и время?

Алфа

Ответы [ 2 ]

3 голосов
/ 20 января 2012

Прошло много времени с тех пор, как я занимался разработкой WP7, но я уверен, что при повторной активации приложения произошло событие - не могли бы вы просто запросить DateTime.Now или DateTime.Today в этот момент?

РЕДАКТИРОВАТЬ: Глядя на документы, я думаю, что вы хотите Запуск и Активированные события. (Launching, чтобы проверить время даже при первом запуске; Activated для повторной активации после того, как он перестал работать.)

2 голосов
/ 20 января 2012

Предполагая, что у вас есть класс модели, который содержит поле DateTime с именем 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
    }
...