我正在研究Windows Phone的计时器应用程序,我试图让它如果计时器上的剩余时间为零,无论应用程序是否处于活动状态,都会播放来自BackgroundAudioPlayer的声音,不活跃或处于锁定状态。
目前,我的问题是当应用程序未处于活动状态时,tick事件实际上并没有执行任何操作。一旦用户返回到应用程序,滴答事件就会运行到他们原本不会这样的点,但除非应用程序处于活动状态或切换为活动状态,否则声音效果(或其他任何内容)将不会实际播放。
我的Page.xaml.cs
:
PhoneApplicationService.Current.ApplicationIdleDetectionMode = IdleDetectionMode.Disabled;
相关代码是:
void dispatcherTimer_Tick(object sender, EventArgs e)
{
var remaining = this.EndTime - DateTime.Now;
int remainingSeconds = (int)remaining.TotalSeconds;
this.timeSpan.Value = TimeSpan.FromSeconds(remainingSeconds);
if (remaining.TotalSeconds <= 0)
{
this.dispatcherTimer.Stop();
button1.Visibility = Visibility.Collapsed;
button6.Visibility = Visibility.Visible;
this.EndTime = DateTime.MinValue;
this.timeSpan.Value = TimeSpan.FromSeconds(0);
BackgroundAudioPlayer.Instance.Play();
}
}
如果应用程序位于锁定屏幕下,或者其他方式不活动,我该怎么做才能运行tick事件?
答案 0 :(得分:0)
Windows Phone对后台工作有严格的限制。您是否需要获得在锁屏下工作的许可?
http://developer.nokia.com/community/wiki/Run_Windows_Phone_application_under_lock_screen
但它仅在锁屏下保持应用程序处于活动状态,但在用户按下Windows或关闭应用程序时则不会。