按下锁定键后无法调用OnNavigatedFrom方法

时间:2013-08-21 11:11:16

标签: c# windows-phone-7 windows-phone-8

我正在开发Windows手机中的一款应用。在我的应用程序中,有必要处理锁定按键事件,因为我使用了Timer。这是我的代码

    protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
    {

        PhoneApplicationService.Current.Activated += Micropphone_Current_Activated;
        PhoneApplicationService.Current.Deactivated += Micropphone_Current_Deactivated;
        if (_autowizardtimer != null)
        {
            _autowizardtimer.Stop();
            _autowizardtimer.Tick -= _timer_Tick;
            if (_endtimer != null)
            {
                _endtimer.Stop();
                _endtimer.Tick -= _endtimer_Tick;
            }
        }      
    }
    protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e)
    {
       if (_autowizardtimer != null)
        {
            PhoneApplicationService.Current.Activated -= Micropphone_Current_Activated;
            PhoneApplicationService.Current.Deactivated -= Micropphone_Current_Deactivated;
            _autowizardtimer.Stop();
            _autowizardtimer.Tick -= _timer_Tick;
        }
        if (_endtimer != null)
        {               
            _endtimer.Stop();
            _endtimer.Tick -= _endtimer_Tick;
        }
    }

基本上我要做的是,当用户按下锁定键时,计时器暂停,并在释放锁定键计时器后启动。问题出在OnNavigatedFrom方法中。当我按下锁定键时,此方法不会调用。我没有得到什么问题。有人可以告诉为什么会发生这种情况吗?或者还有其他方法来处理锁定按键吗?

2 个答案:

答案 0 :(得分:1)

屏幕锁定时无需停止计时器,因为您的应用程序将自动停用(除非您明确告知系统您希望应用程序在锁定屏幕下运行)。

但是,如果您想要检测屏幕被锁定或解锁的时刻,您可以分别使用事件ObscuredUnobscured

http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj206951(v=vs.105).aspx#BKMK_Understandingtheeventsthatoccurwhenthephoneislockedorunlocked

答案 1 :(得分:0)

当你按下锁定键时,你基本上不会从页面导航,但是你正在停用你的应用程序。在您的情况下,我将在App.xaml.cs激活和停用事件中处理此计时器。

请在此处查看Windows Phone应用程序生命周期:http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff817008(v=vs.105).aspx

此致