Итак, у меня есть приложение, которое при нажатии кнопки: запускает таймер, циклически перебирает один (++) фрагмент данных, скрывает кнопку запуска и вместо этого показывает кнопку «Стоп» и «Далее».Я заглянул в центр обмена сообщениями и подумал, что это исправляет проблему (вот ссылка Xamarin. Формы, как мне получить доступ к публичной функции из другого файла CS? ), но это не решило проблему полностью.
Если в приложении работает таймер (иначе вы нажали кнопку «Пуск»), а затем прервали процесс, нажав кнопку «Домой» на вашем телефоне, приложение работает нормально, и приложение скрывает кнопки «Стоп / следующий» и показываеткнопка запуска и остановки таймера.Если вы вообще не запустили процесс (иначе вы не нажали кнопку «Пуск») и нажали кнопку «Домой» на своем телефоне, приложение выдает ошибку исключения, потому что то, что я изменяю с помощью центра сообщений «не нужно»меняется, потому что никогда не менялся ".Есть ли лучший способ справиться с этой ситуацией?
Можно ли использовать операторы if / else в состоянии приложения с Messagingcenter ??Я застрял.
App.xaml.cs
protected override void OnSleep()
{
// Handle when your app sleeps
Debug.WriteLine("~~~~~~~~~~~~~~OnSleep~~~~~~~~~~~~~");
MessagingCenter.Send<App>(this, "OnSleep");
}
MainPage.xaml.cs
MessagingCenter.Subscribe<App>(this, "OnSleep", (sender) => {
//shows start button instead of stop button
StartGrid.IsVisible = true;
//hides stop button
StopNextGrid.IsVisible = false;
//stops timer
timer.Stop();
timer = null;
//stops sound
startSound.Stop();
stopSound.Play();
});