- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试为 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
您可以执行以下操作:
在 Mainpage.xaml 中,查看警报是否正在运行,如果 alarmSet 为真,则将用户重定向到 onNavigatedTo 事件下的下一页。
在下一页中,将 alarmSet 设置为 false 并将用户重定向到 MainPage.xaml。 onNavigatedTo 将再次被触发,但是,由于 alarmSet 为 false,用户不会被重定向到任何地方。您可以在此处执行停止警报或其他任何其他情况。
关于c# - Windows Phone 闹钟不断自行重新开启,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23209842/
我发现以下帖子非常有帮助: How to pickle yourself? 但是,此解决方案的局限性在于,重新加载类时,它不会以其“运行时”状态返回。即它将重新加载所有变量等以及类在转储时的一般状态.
我是一名优秀的程序员,十分优秀!