Как очистить застрявший переход страницы в WP7?

В настоящее время у меня есть приложение, которое не прошло сертификацию из-за ошибки перехода страницы.

Проблема очень чувствительна к времени, но может быть воспроизведена следующим образом:

  1. Запустите приложение — подождите, пока откроется домашняя страница
  2. Перейти на дочернюю страницу
  3. Как только начнется навигация, нажмите кнопку запуска
  4. Затем нажмите кнопку «Назад» — там есть дочерняя страница.
  5. Затем нажмите кнопку «Назад» — домашней страницы там нет — это пустой экран.

Если я затем нажму кнопку блокировки экрана, а затем разблокирую телефон, то страница появится нормально.

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

Есть настройка с использованием:

        var navInTransition = new NavigationInTransition
        {
            Backward = new TurnstileTransition { Mode = TurnstileTransitionMode.BackwardIn },
            Forward = new TurnstileTransition { Mode = TurnstileTransitionMode.ForwardIn }
        };

        var navOutTransition = new NavigationOutTransition
        {
            Backward = new TurnstileTransition { Mode = TurnstileTransitionMode.BackwardOut },
            Forward = new TurnstileTransition { Mode = TurnstileTransitionMode.ForwardOut }
        };

        TransitionService.SetNavigationInTransition(this, navInTransition);
        TransitionService.SetNavigationOutTransition(this, navOutTransition);

Если я удалю этот код перехода, то мое приложение никогда не "зависнет".

Кто-нибудь видел что-нибудь подобное раньше? Есть ли у кого-нибудь идеи, как я могу работать в коде, если переходы страниц застряли, и если они таковы, как я могу их перезапустить?


person Stuart    schedule 25.06.2012    source источник


Ответы (1)


Если это только на устройствах 256 МБ, это может быть проблема, связанная с памятью. Попробуйте отключить использование переходов в этой ситуации.
Согласно рекомендациям http://www.developer.nokia.com/Community/Wiki/Best_practice_tips_for_delivering_apps_to_Windows_Phone_with_256_MB

В качестве альтернативы вы можете попробовать удалить только одну сторону анимации. У меня были проблемы с переходом в прошлом (извините, я не помню точных деталей), которые были решены путем удаления файла NavigationOutTransition.

person Matt Lacey    schedule 26.06.2012
comment
Спасибо. Это происходит на полном устройстве Lumia 800 и, похоже, влияет на несколько приложений... но пользователь должен нажать «Пуск» в нужный момент. Если я удалю NavigationOutTransition, то пользователь, похоже, вообще не увидит переход... Думаю, я зарегистрирую его в codeplex - там есть несколько других проблем с переходом - например. silverlight.codeplex.com/workitem/8396 - person Stuart; 26.06.2012