Memory Blackberry-要在UI堆栈中推送的最大屏幕数
有人知道在不调用popscreen()的情况下,我们可以在UiApplication中推送多少屏幕吗?每个屏幕类的最大文件大小是多少 谢谢你Memory Blackberry-要在UI堆栈中推送的最大屏幕数,memory,user-interface,blackberry,screen,Memory,User Interface,Blackberry,Screen,有人知道在不调用popscreen()的情况下,我们可以在UiApplication中推送多少屏幕吗?每个屏幕类的最大文件大小是多少 谢谢你 根据Marc评论,Mintu更新 BB文件 引自: 在用户界面(UI)堆栈上管理应用程序屏幕时,不要使pushScreen()和popScreen()不匹配。当黑莓智能手机用户完成与屏幕的交互时,弹出界面堆栈中的屏幕;否则,显示堆栈将继续增长,直到黑莓智能手机内存耗尽。您不应该一次使用多个模式屏幕,因为每个屏幕使用一个线程,并且您不应该只弹出一次屏幕。如果
根据Marc评论,Mintu更新 BB文件 引自: 在用户界面(UI)堆栈上管理应用程序屏幕时,不要使pushScreen()和popScreen()不匹配。当黑莓智能手机用户完成与屏幕的交互时,弹出界面堆栈中的屏幕;否则,显示堆栈将继续增长,直到黑莓智能手机内存耗尽。您不应该一次使用多个模式屏幕,因为每个屏幕使用一个线程,并且您不应该只弹出一次屏幕。如果你弹出屏幕太多次,黑莓智能手机的轨迹盘/轨迹球和键盘可能会失去响应 引自: 单个应用程序最多可以创建16个线程。BlackBerry设备上所有应用程序中可存在的线程总数为128。因此,如果应用程序已经创建了16个线程,则第17次尝试将失败,并引发ToomAnythReaderError异常。类似地,如果BlackBerry设备上已经创建了128个线程,并且应用程序尝试创建另一个线程,则会引发TooManyThreadsError异常 测试应用 结论 因此,在模式屏幕的情况下,最大计数为16,公共大小受设备jvm内存限制。
否则就是这样。我不认为常规的pushScreen()在每个屏幕上都使用线程-可能KB文章指的是使用pushModalScreen()方法推送的屏幕?Marc,你是对的,只有模式屏幕对每个屏幕使用单独的线程。
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);
}
});
}
}
}