2013-10-10 7 views
0

В моем приложении, вызывающем вызов службы при каждой навигации по странице и показывая MessageDialog для пользователя.Как избежать MessageDialog в навигации по страницам

Моя проблема была, когда я ударяя службы вызова (ОЖИДАНИЕ) на странице навигации «Page1» к «Page2» в то время как вызов службы принимает определенное время для завершения пользователь ВРЕМЕНЕМ краны обратно «Page1»

В этом случае пользователь видит «Page1» и дождитесь завершения служебного вызова на «Page2» и покажите это сообщение ответа службы в «Page1».

Как избежать MessageDialog, если пользователь перейдет с этой страницы.

ответ

0

Прежде всего, вам следует избегать использования MessageDialogs для такого рода информации. Вы должны подумать об использовании ProgressBar или ring, чтобы указать, что ваше приложение выполняет задачу в фоновом режиме (вызов вашей службы). Таким образом, ваши пользователи не будут прерваны в их взаимодействии с приложением, но все же помните, что что-то происходит в фоновом режиме.

Если вы используете шаблон MVVM, ваши классы ViewModel или Model должны делать тяжелый подъем разговоров с сервисом. Если ваше приложение должно обязательно показывать MessageDialogs, я бы рекомендовал создать событие в ваших внутренних классах, что приведет к тому, что пользовательский интерфейс отобразит MessageDialogs по завершении вызова. Таким образом, вы можете подписаться на эти события при загрузке страницы и отказаться от подписки на них при навигации. Таким образом, вы можете избежать сообщений, появляющихся на странице 2, когда вы находитесь на странице 1 вашего приложения.

+0

Я показываю несколько идентификаторов пользователя в gridview на странице «Страница1». Пользователь нажимает «User1» в «Page1» и приложение перенаправляется на «Страница 2» и нажимает на услугу (асинхронно) и показывает информацию «User1». Неполадка, возникшая ниже сценария Пользователь на странице «Страница1», нажав на перенаправление приложения «User1» на услугу «Страница2» (async) для получения информации «User1». Тем временем пользователь перейдет к «Page1» и нажал на другого пользователя «User3» , тогда как приложение на «стр. 2», но в это время завершение обслуживания «User1» завершено и показывая свою информацию на странице 2, на самом деле это должно показывать информацию «User3». –

+0

Итак, откуда взялась часть вашего сообщения «MessageDialog»? – ZombieSheep

+0

В нескольких случаях я показываю messageDialog на основе профиля пользователя –

Смежные вопросы