У меня есть событие click, которое вызывает вибрацию телефона после нажатия кнопки. Это обычно отлично работает, за исключением случаев, когда вибрация не останавливается, пока я полностью не закрываю приложение. Я хотел бы предоставить время приложения, чтобы завершить его вибрацию, а затем продолжить с остальной частью метода, но я вообще не хочу блокировать интерфейс. Как я мог бы выполнить этуКак сделать паузу без блокировки пользовательского интерфейса
MainPage.xaml.cs
void newButton_Click(object sender, EventArgs e)
{
//Button vibration
if (Settings.EnableVibration.Value) //boolean flag to tell whether to vibrate or not
{
VibrateController.Default.Start(TimeSpan.FromMilliseconds(100));
//place vibration stop here?
}
this.NavigationService.Navigate(new uri("/NewPage.xaml", UriKind.Relate));
}
Я уже пробовал VibrationController.Default.Stop(); но это полностью исключает вибрацию вместе. Есть ли способ подождать до тех пор, пока вибрация не завершится, а затем перейти на новую страницу или выполнить какое-либо другое действие, которое должен выполнить этот метод? Любые рекомендации или рекомендации по этой реализации или другие предложения?
Спасибо. Что, если на самом деле я не хотел бы перейти на новую страницу, а просто приостановился, пока произошла вибрация. Это нормально 'if (Settings.EnableVibration.Value) // флаг boolean, чтобы указать, вибрировать или нет { VibrateController.Default.Start (TimeSpan.FromMilliseconds (40)); Task.Delay (45) .ContinueWith (t => { VibrateController.Default.Stop(); }); } ' Метод запуска VibrationController требует параметра TimeSpan. – Matthew
Кроме того, будет ли установка «Задержка» на большее время, чем «Пуск», убедиться, что вибрация завершена, прежде чем перейти к следующему процессу? – Matthew
@Matthew Если вы не хотите ничего делать после того, как вибрация остановится, просто перейдите в промежуток времени и ничего не делайте; все готово. Если вы хотите что-то сделать * правильно *, когда вибрация остановится, вы хотите, чтобы вы задерживали на меньшее время, чем время, которое вы проходите, чтобы вы могли запускать код, когда вы явно его останавливаете. – Servy