弹出到主屏幕

时间:2011-12-05 02:58:24

标签: blackberry

在我的应用程序中,我一个接一个地放了一些屏幕,我需要随时弹出到主屏幕。有没有办法找出活动屏幕是第一个?或者,可能是,有任何功能弹出到根屏幕而没有弹出到以前的循环?


编辑换句话说,我需要我的应用程序转到上一个屏幕,点击黑莓“后退”按钮(它没有任何额外的代码执行此操作),并转到屏幕,用户优先查看何时启动此应用程序,点击我的用户界面中的“主页”按钮

3 个答案:

答案 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设备应用程序有效地使用内存