如何显示吐司消息并延迟以下代码运行几秒钟?

时间:2019-05-19 13:19:34

标签: c# xamarin.android

我想在Xamarin.Android中向用户显示Toast消息,但是在Toast延迟运行大约3秒钟左右之前,需要运行以下代码。

我尝试使用不同的计时器类在设定的时间间隔后继续执行以下代码,延迟有效,但根本不显示Toast消息。

// Main method
Toast.MakeText(this, "It is correct", ToastLength.Short).Show();

var t = new System.Timers.Timer(3000);
t.Elapsed += new ElapsedEventHandler(OnTimedEvent);
t.Enabled = true;

// event handler
private void OnTimedEvent(object sender, ElapsedEventArgs e)
    {
        // following code in this method
        SetLayout();
        t.Enabled = false;
        t.Dispose();
    }

我希望显示Toast消息,并且SetLayout方法中的以下代码在大约3秒钟后运行,但是现在根本不显示Toast消息。

1 个答案:

答案 0 :(得分:1)

如果您想延迟触发SetLayout方法3秒钟,可以尝试Task.Delay。这是我的代码,先显示烤面包,然后显示警报:

private async void Btn_Click(object sender, EventArgs e)
{
    Toast.MakeText(this, "It is correct", ToastLength.Short).Show();

    await Task.Delay(3000);

    Android.Support.V7.App.AlertDialog.Builder builder = new Android.Support.V7.App.AlertDialog.Builder(this);
    builder.SetPositiveButton("OK", delegate
    {
    });
    Android.Support.V7.App.AlertDialog alertDialog = builder.Create();
    alertDialog.SetTitle("Alert");
    alertDialog.SetMessage("messages");            
    alertDialog.Show();
}

查看以下效果:

enter image description here