Xamarin表单显示警告弹出2次

时间:2017-03-30 00:45:01

标签: c# windows xamarin uwp xamarin.forms

我已经创建了Xamarin pcl表单项目并在用户按下注销按钮时询问确认,它在Android和iOS上工作正常但在同样的情况下我运行的Windows UWP项目弹出出现2次,我不知道发生什么事。请指导我如何解决这个问题。

我在我的项目中使用了以下代码。

我已经使用了await和没有await关键字的两个选项,但没有运气。

var resp = await DisplayAlert("","Are you sure want to Logout?","Yes", "No");
if (resp)
{ 
}

4 个答案:

答案 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次。