问题描述
我目前正在制作一个Xamarin跨平台应用程序,它是一个任务跟踪器/背对背计时器。我开发了所有工具,并遵循了我所知道的所有常见实践:例如MVVM。我很快开始意识到自己并没有考虑到背景(这是我的第一个应用程序,所以这是一个菜鸟错误)。
我最感兴趣的工具是Shiny nuget软件包,每当我从TimeSpan中减去1时,我都试图运行一个临时作业。关于如何执行临时工作的任何提示?我认为我没有传递正确的参数,或者没有人知道任何更好的后台插件。
我认为异步调用出了点问题?我认为我不完全理解这个概念。
谢谢。
public void startTimer()
{
Update();
timer.Interval = 1000;
timer.Enabled = true;
timer.AutoReset = true;
timer.Elapsed += Timer_Elapsed;
}
public async void Timer_Elapsed(object sender,System.Timers.ElapsedEventArgs e)
{
if ( Time.Value.TotalSeconds.Equals(0))
{
var timerNotification = new NotificationRequest
{
NotificationId = 100,Title = TimerText,Description = TimerText + " Is Completed"
};
var doneNotification = new NotificationRequest
{
NotificationId = 101,Title = "Done!",Description = "All Tasks Are Completed!"
};
if (Time.Equals(null))
{
Plugin.localnotification.NotificationCenter.Current.Show(doneNotification);
}
else
{
Plugin.localnotification.NotificationCenter.Current.Show(timerNotification);
textColorChanger();
SkipText = "Next";
}
timer.Stop();
playSound();
}
else
{
await Shiny.ShinyHost.Resolve<Shiny.Jobs.IJobManager>().RunTask(async () =>
{
var TimeSpan = await subtract(Time);
Time = TimeSpan;
Update();
});
}
}
public void subtract(TimeSpan? T)
{
Time -= TimeSpan.FromSeconds(1);
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)