Выполните код синхронно с помощью PopupScreen или Dialog на BlackBerry - PullRequest
0 голосов
/ 26 октября 2010

У меня есть программа, которая будет получать сообщения с сервера и сохранять их локально. Если заголовок сообщения, но не само сообщение, существует локально, программа загружает сообщение при отображении всплывающего окна с сообщением о загрузке, а также кнопку «Отмена», если пользователь хочет прервать загрузку.

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

Я просмотрел API BlackBerry, но ничего не смог найти.

1 Ответ

1 голос
/ 26 октября 2010

Ваш код для получения тела сообщения является относительно долгим, поэтому он не должен запускаться с блокировкой событий пользовательского интерфейса - в противном случае кнопка «Отмена» не будет работать, а ОС BlackBerry закроет ваше приложение, поскольку оно перестанет отвечать на события пользовательского интерфейса во время загрузки.

Таким образом, вы запускаете код загрузки в отдельном потоке, используя Поток . Вы запускаете поток одновременно с тем, как диалоговое окно предоставляется пользователю. Чтобы закрыть диалоговое окно после завершения потока, вам потребуется использовать Application .invokeLater (...) из потока, начатого в начале операции. Вызов invokeLater () может закрыть диалог и позволить приложению продолжить. Что касается кнопки «отмена», вам нужно установить бит отмены, периодически проверять отдельный поток и затем выходить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...