ОБНОВЛЕНИЕ согласно комментарию Марка
BB Документация
Cite from How To - Управление взаимодействиями пользовательского интерфейса :
При управлении экранами вашего приложения в стеке пользовательского интерфейса (UI) не допускайте несовпадения pushScreen () и popScreen (). Когда пользователь смартфона BlackBerry завершает взаимодействие с экранами, всплывающие экраны отключаются от стека пользовательского интерфейса; в противном случае, стек дисплея продолжает расти, пока смартфон BlackBerry не исчерпает память. Вы не должны использовать более нескольких модальных экранов за один раз, потому что каждый экран использует поток , и вы не должны выскочить на экран только один раз. Если вы нажимаете на экран слишком много раз, трекбол / трекбол и клавиатура смартфона BlackBerry могут перестать отвечать на запросы.
Цитировать из Что такое - TooManyThreadsError :
Одно приложение может создавать до 16 потоков. Общее количество потоков, которые могут существовать на устройстве BlackBerry из всех приложений, составляет 128. Поэтому, если приложение уже создало 16 потоков, 17-я попытка завершается неудачно и выдается исключение TooManyThreadsError. Аналогично, если на устройстве BlackBerry уже создано 128 потоков и приложение пытается создать другой поток, возникает исключение TooManyThreadsError.
Тестовое приложение
альтернативный текст http://img52.imageshack.us/img52/5937/8300testscrcount.jpg
class PushScr extends MainScreen {
static int mScrCount = 0;
Screen mContext = this;
public PushScr() {
mScrCount++;
add(new LabelField("screen count: " + mScrCount));
add(new LabelField("threads count: " + Thread.activeCount()));
add(new LabelField("memory used: "
+ Memory.getRAMStats().getAllocated()));
}
protected void makeMenu(Menu menu, int instance) {
super.makeMenu(menu, instance);
menu.add(new MenuItem("push screen", 0, 0) {
public void run() {
Ui.getUiEngine().pushScreen(new PushScr());
}
});
menu.add(new MenuItem("push modal screen", 0, 0) {
public void run() {
Ui.getUiEngine().pushModalScreen(new PushScr());
}
});
if (mScrCount > 1) {
menu.add(new MenuItem("pop screen", 0, 0) {
public void run() {
Ui.getUiEngine().popScreen(mContext);
}
});
}
}
}
Заключение
Таким образом, в случае модальных экранов максимальное количество равно 16, а общий размер ограничен памятью jvm устройства.
В противном случае это все о объеме памяти SRAM устройства .