我想在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消息。
答案 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();
}
查看以下效果: