我的 WP7 (silverlight) 应用程序一直被拒绝,因为它“不应在来电时继续振动”。但是,仅对 Applicaton_Deactivated
事件使用react并不能解决问题,因为来电时不会调用此方法...
有问题的振动是通过 DispatcherTimer
完成的,它在电话调用后一直在后台运行。将执行移动到主线程并没有改变任何东西。
应用程序是否会在来电后继续正常运行?或者有什么方法可以停止振动吗?
振动器和定时器的初始化:
vibrator = VibrateController.Default;
vibratorTimer = new DispatcherTimer();
vibratorTimer.Tick += new EventHandler(vibrateRepatedly);
vibratorTimer.Interval = new TimeSpan(0, 0, 0, 0, UIConstants.VIBRATION_INTERVAL);
vibrationSpan = new TimeSpan(0, 0, 0, 0, UIConstants.VIBRATION_DURATION);
打勾方法:
private void vibrateRepatedly(object sender, EventArgs e)
{
vibrator.Start(vibrationSpan);
}
最佳答案
在来电期间 Obscured 事件
被调用,而不是 Application_Deactivated 事件
。
您将在应用程序中收到一个 Obscured 事件,但您无法区分这是由于来电、收到的短信还是提醒。
Here是您获得的 Obscured 事件的 MSDN 文档的链接。有一个相应的Unobscured event
你也可以检测到。
关于silverlight - 在 WP7 上通话时禁用 DispatcherTimer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16472961/