gpt4 book ai didi

c# - Windows Phone 闹钟不断自行重新开启

转载 作者:行者123 更新时间:2023-11-30 16:59:49 24 4
gpt4 key购买 nike

我正在尝试为 Windows Phone 编写闹钟应用程序,要求用户在闹钟响起时解决数学问题。现在我被卡住了,我有 MainPage 包含打开警报的设置,当警报响起时,用户被重定向到另一个 xaml 页面,该页面要求用户输入随机生成的数学答案问题以关闭闹钟。我的问题是,一旦用户解决了问题并点击了复选框,应用程序应该首先将 alarmSet 值设置为 false,并将用户重定向回主页面:

private void Solve_Click(object sender, EventArgs e)
{

this.userSolve = Convert.ToInt32(answerInput.Text);
if (userSolve != answer)
{
MessageBox.Show("Incorrect");
//userAnswerInt = Convert.ToInt32(answerInput.Text);


}

else if (userSolve == answer)
{
MainPage.alarmSet.Value = false;
NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.Relative));
}


}

然后当用户到达主页面时,OnLoaded 方法应该停止警报声并将一切重置为正常:

public async void OnLoaded(object sender, EventArgs e)
{

this.timer.Stop();
this.alarmSound.Stop();


alarmSet.Value = false;
this.notificationSwitch.IsChecked = alarmSet.Value;

this.timePicker.Value = new DateTime(1, 1, 1,
alarmTime.Value.Hours,
alarmTime.Value.Minutes,
0
);



if (alarmSet.Value == true)
this.alarmTimeText.Text = alarmTimeString;
else if (alarmSet.Value == false)
this.alarmTimeText.Text = "alarm off";

但问题是,每次用户解决数学问题时,他们都会被带回主页并立即重定向回闹钟页面,因为闹钟仍处于打开状态。这会创建一个相互重叠的警报无限循环,我无法弄清楚为什么,即使我在导航回主页之前将 alarmSet.Value 设置为 false,警报仍然被视为开启......有什么事吗我还需要做什么?我怎样才能打开闹钟并将时钟设置为当前分钟而不立即响起?

最佳答案

我在 Windows Phone 的应用程序生命周期中没有看到“OnLoaded”事件。

引用:http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff817008(v=vs.105).aspx

您可以执行以下操作:

  1. 在 Mainpage.xaml 中,查看警报是否正在运行,如果 alarmSet 为真,则将用户重定向到 onNavigatedTo 事件下的下一页。

  2. 在下一页中,将 alarmSet 设置为 false 并将用户重定向到 MainPage.xaml。 onNavigatedTo 将再次被触发,但是,由于 alarmSet 为 false,用户不会被重定向到任何地方。您可以在此处执行停止警报或其他任何其他情况。

关于c# - Windows Phone 闹钟不断自行重新开启,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23209842/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com