Я хочу показать всплывающее сообщение пользователю в Xamarin.Android, но иметь следующий код после того, как всплывающее уведомление будет отложено примерно на 3 секунды или около того, прежде чем оно будет запущено.
Я пытался использовать разные классы таймера, чтобы продолжить следующий код после заданного интервала, задержка работает, но всплывающее сообщение вообще не отображается.
// 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();
}
Я хочу, чтобы всплывающее сообщение отображалось, а следующий код внутри метода SetLayout запускался примерно через 3 секунды, но сейчас всплывающее сообщение вообще не отображается.
Если вы хотите отложить запуск метода 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();
}
Смотрите эффект ниже: