我正在开发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
方法中。当我按下锁定键时,此方法不会调用。我没有得到什么问题。有人可以告诉为什么会发生这种情况吗?或者还有其他方法来处理锁定按键吗?
答案 0 :(得分:1)
屏幕锁定时无需停止计时器,因为您的应用程序将自动停用(除非您明确告知系统您希望应用程序在锁定屏幕下运行)。
但是,如果您想要检测屏幕被锁定或解锁的时刻,您可以分别使用事件Obscured
和Unobscured
。
答案 1 :(得分:0)
当你按下锁定键时,你基本上不会从页面导航,但是你正在停用你的应用程序。在您的情况下,我将在App.xaml.cs激活和停用事件中处理此计时器。
请在此处查看Windows Phone应用程序生命周期:http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff817008(v=vs.105).aspx
此致