在我的应用程序中,我一个接一个地放了一些屏幕,我需要随时弹出到主屏幕。有没有办法找出活动屏幕是第一个?或者,可能是,有任何功能弹出到根屏幕而没有弹出到以前的循环?
编辑换句话说,我需要我的应用程序转到上一个屏幕,点击黑莓“后退”按钮(它没有任何额外的代码执行此操作),并转到屏幕,用户优先查看何时启动此应用程序,点击我的用户界面中的“主页”按钮
答案 0 :(得分:6)
这可以随时随地为您提供帮助:
在启动类( StartUp.java )中编写此方法:
public static void popupScreens()
{
int screenCount = UiApplication.getUiApplication().getScreenCount();//Gives how many screens are active state in background;
for (int i = 0; i < screenCount; i++)
{
Screen screen = UiApplication.getUiApplication().getActiveScreen();
UiApplication.getUiApplication().popScreen(screen);
}
}
并在任何具有类名(EX: StartUp.popupScreens )的地方调用此方法,然后弹出堆栈中的所有屏幕。
答案 1 :(得分:1)
首先,您需要组织您的屏幕,应用程序逻辑并清楚地定义您希望在UI堆栈上显示哪些屏幕以及那些不在屏幕上的屏幕。对于那些不需要在UI堆栈上的屏幕,您可以在其上按下另一个屏幕时自动关闭它们:
class SplashScreen extends FullScreen
{
protected void onObscured()
{
close();
}
}
答案 2 :(得分:0)
向屏幕添加菜单,以便选择Gotohomescreen
选项。只需从显示堆栈弹出活动屏幕,即可从menus's run()
方法推送主屏幕。为了有效。如果你想回到你的应用程序,你可以弹出活动屏幕,它将从你来的地方进入那个屏幕。假设你添加了backButton
,你可以覆盖按钮的fieldchanged方法,在fieldchanged方法做这样的事情。
if(field == backbutton) {
UiApplication.getUiApplication().popScreen(UiApplication.getUiApplication().getActiveScreen());
}
在这里使用内存是你的答案
堆栈顶部的屏幕是BlackBerry设备用户看到的活动屏幕。当BlackBerry设备应用程序显示屏幕时,它会将屏幕推到堆栈顶部。当BlackBerry设备应用程序关闭屏幕时,它将从屏幕顶部移除屏幕并显示堆栈中的下一个屏幕,并根据需要重新绘制它。每个屏幕只能在显示堆栈中出现一次。如果BlackBerry设备应用程序推送到堆栈的屏幕已存在,则为BlackBerry JVM throws a runtime exception
。
当BlackBerry设备用户完成与其交互时,BlackBerry设备应用程序必须从显示堆栈中删除屏幕,以便BlackBerry设备应用程序有效地使用内存