Разница между этими двумя методами при отображении экрана? - PullRequest
3 голосов
/ 30 марта 2012

В разработке BlackBerry (я говорю о BB OS 6+), если я хочу отобразить другой экран при нажатии кнопки, я увидел, что могу использовать любой из следующих способов, чтобы сделать это:

getScreen().getUiEngine().pushScreen(new MyScreen());

и,

UiApplication.getUiApplication.pushScreen(new MyScreen());

Оба вышеуказанных метода успешно показывают новый экран MyScreen.Но в чем разница между этими двумя?Или они одинаковые?

Примечание: я специально спрашиваю, ведут ли они себя по-разному (в отношении ресурсов) и одинаково ли они обрабатывают вызовы методов или нет.И имеют ли они какие-либо заметные последствия в отношении конечных пользователей?

Спасибо.

1 Ответ

4 голосов
/ 31 марта 2012

Первый метод помещает экран в стек, связанный с приложением, которое «владеет» экраном, содержащим поле (я предполагаю, что вы вызываете Field.getScreen () ...).

Второй метод помещает экран в стек приложения, которое «владеет» потоком, выполняющим UiApplication.getUiApplication () ...

Если вы не выполняете сложную фоновую обработку или не взаимодействуете с системными приложениями черезApplicationMenus или некоторые слушатели.

Основной эффект заключается в том, какие ресурсы доступны в каждом случае.Если вы используете синглеты с областью приложения, эти различия в конечном итоге отразятся на вашей программе.Это одна из причин, по которой RIM рекомендует использовать синглеты с системной областью, использующие RuntimeStore или PersistentStore.

Мой опыт разработки конкретной программы Моя помощь: http://www.hrbuckley.net/2012/03/blackberrry-singletons-application.html

...