0

我正在为 Windows Phone 开发一个计时器应用程序,并且我正在努力做到这一点,如果计时器上的剩余时间为零,则来自 BackgroundAudioPlayer 的声音将播放,无论应用程序是否处于活动状态、非活动状态、或处于锁定状态。

目前,我的问题是,当应用程序不活动时,滴答事件实际上并没有做任何事情。一旦用户回到应用程序,滴答事件就会运行到他们本来可以运行的点,但是除非应用程序处于活动状态或切换到活动状态,否则声音效果(或其他任何东西)实际上不会播放。

我确实有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();
        }
    }

当应用程序在锁屏下或其他方式不活动时,我该怎么做才能使滴答事件运行?

4

1 回答 1

0

Windows Phone 对后台工作有严格的限制。您可能需要获得在锁屏下工作的许可吗?

http://developer.nokia.com/community/wiki/Run_Windows_Phone_application_under_lock_screen

但它只会在锁屏下保持应用程序处于活动状态,而不是当用户按下窗口或关闭您的应用程序时。

于 2014-03-25T12:29:43.620 回答