Отзывчивость приложения после деактивации: ошибка 5.2.3. - PullRequest
1 голос
/ 17 января 2012

Я недавно представил небольшое приложение, работающее на платформе Silverlight.Но мое приложение было отклонено с рынка из-за ошибки 5.2.3, т. Е. Отзывчивость приложения после деактивации.Я обнаружил следующее: после того, как пользователь успешно завершил игру (головоломку), я показываю ему диалоговое окно:

MessageBoxResult mr = MessageBox.Show("You have won! Do you want to start another game?", "Information", MessageBoxButton.OKCancel);
if(mr==MessageBoxResult.Cancel)
{
    NavigationService.GoBack();
}

Теперь дело в том, - если пользователь нажимает кнопку запуска после того, как это диалоговое окнона дисплее приложение перестает выдавать исключение -
Навигация не разрешена, если задача находится не на переднем плане.Ошибка: -2147220990

Мне кажется, допустимой ошибкой, хотя я не уверен, как мои другие приложения успешно прошли процесс сертификации, хотя они имели тот же недостаток.Я только начал разрабатывать приложения WP, поэтому у меня мало знаний о том, чем можно заняться.Пожалуйста, не могли бы вы помочь мне обойти.

1 Ответ

2 голосов
/ 17 января 2012

Не похоже, что для этого случая есть простой тест. Может показаться, что MessageBox отменяется до того, как сработало событие Deactivated, поэтому я не вижу способа проверить это состояние.

Мое предложение было бы обнаружить и проглотить конкретное исключение:

  MessageBoxResult mr = MessageBox.Show("You have won! Do you want to start another game?", "Information", MessageBoxButton.OKCancel);
  if (mr == MessageBoxResult.Cancel)
  {
    try
    {
      NavigationService.GoBack();
    }
    catch (InvalidOperationException e)
    {
      // occurs if message box closed due to de-activation
    }
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...