protected override bool OnBackButtonPressed() { try { bool exitapp = true;; var previous = PageProvider.GetPrevious(); if (previous == null) { if (AppMainService.Instance.PomodoroStatus?.TimerState == Enums.TimerState.Running) { Device.BeginInvokeOnMainThread(async() => { var displayAlert = new DialogProvider(Detail); var cancelRunnigTimer = await displayAlert.DisplayAlert("Cancel Timer", "Running timer will be stopped. Do you want to continue ?", "ok", "cancel"); if (cancelRunnigTimer) { AppMainService.Instance.StopPomodoro(); exitapp = true; } else { exitapp = false; } if (exitapp) { OnBackButtonPressed(); } }); return(true); } else { base.OnBackButtonPressed(); return(false); } } else { Detail = previous; return(true); } } catch (Exception ex) { Debug.Fail(ex.Message); return(true); } }