我已经创建了Xamarin pcl表单项目并在用户按下注销按钮时询问确认,它在Android和iOS上工作正常但在同样的情况下我运行的Windows UWP项目弹出出现2次,我不知道发生什么事。请指导我如何解决这个问题。
我在我的项目中使用了以下代码。
我已经使用了await和没有await关键字的两个选项,但没有运气。
var resp = await DisplayAlert("","Are you sure want to Logout?","Yes", "No");
if (resp)
{
}
答案 0 :(得分:1)
也许用户按下按钮快2次,我建议你添加一个标志,如下所示:
player.duration()
或者警报消息可能在另一个任务内(只是成像)所以也许这可以帮助:
bool displayFlag = false;
if(!displayFlag)
{
displayFlag = true;
var resp = await DisplayAlert("","Are you sure want to Logout?","Yes", "No");
if(resp)
{
//Logout
}
displayFlag = false;
}
答案 1 :(得分:0)
您正在通过调用await DisplayAlert
来执行弹出窗口。通过将其存储到变量中,您只是说要从弹出窗口获取输出(是或否)。第二个弹出窗口是因为您将其添加到if条件中。你应该这样做:
Device.BeginInvokeOnMainThread(new Action(async () =>
{
if(await DisplayAlert("", "Are you sure want to Logout?", "Yes", "No"))
{
}
}));
希望它有所帮助!
答案 2 :(得分:0)
我刚遇到这个错误,两个答案都对我不起作用。但是,我设法找到了引起它的原因并进行了修复。这是由于我的应用程序多次调用LoadApplication()
方法引起的。在应用程序运行时,一次使用OnLaunched(LaunchActivatedEventArgs eventArgs)
方法,第二次进入OnActivated(IActivatedEventArgs args)
方法。
因此,如果仍然有人遇到这种情况,请确保这没有发生。
答案 3 :(得分:0)
我遇到了同样的问题。
我多次将EventHandler(+ =)绑定到Control,所以警报显示了n次。