Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
BlackBerry-无法对正在运行的应用程序进行前台处理_Blackberry_Blackberry Jde - Fatal编程技术网

BlackBerry-无法对正在运行的应用程序进行前台处理

BlackBerry-无法对正在运行的应用程序进行前台处理,blackberry,blackberry-jde,Blackberry,Blackberry Jde,我有一个UI应用程序,它设置为启动时自动运行,这会产生一些线程在后台执行一些工作。它有一个屏幕,显示后台线程正在执行的工作的相关信息 class AppName extends UiApplication implements SystemListener2 { private static AppName app; public static void main(String[] args) { app = new AppName(); if

我有一个UI应用程序,它设置为启动时自动运行,这会产生一些线程在后台执行一些工作。它有一个屏幕,显示后台线程正在执行的工作的相关信息

class AppName extends UiApplication implements SystemListener2 {
    private static AppName app;

    public static void main(String[] args) {
        app = new AppName();

        if (ApplicationManager.getApplicationManager().inStartup()) {
            app.addSystemListener(app);
        } else {
            app.initializeLater();
        }
        app.enterEventDispatcher();
    }

    public AppName() {
        pushScreen(new InfoScreen());
        requestBackground();
    }

    private void initialize() {
        // Spawns some threads doing work in the background
    }

    private void initializeLater() {
        invokeLater(new Runnable() {
            public void run() {
                initialize();
            }
        });
    }

    public void powerUp() {
        removeSystemListener(this);
        initialize();
    }
}
当我在模拟器中运行应用程序时,它工作正常。启动后,一切运行,然后当我点击图标时,屏幕被预先固定并显示。这是模拟器的输出:

3:20:26.612: AM: Starting AppName
3:20:26.612: AM: AppName already running
3:20:26.612: AM: Foreground is requested: AppName(304)
3:20:26.628: AM: Foreground is set: AppName(304)
但是,在设备上,屏幕从不显示。这是设备调试器输出:

[0.0] Starting AppName
[0.0] AppName already running
正如您所看到的,前台请求从未发出过。我通过重写UiApplication.activate方法并输入System.out消息来确认这一点,以查看它是否正在被调用,但没有被调用

有人知道为什么会发生这种情况吗?

试试这个

UiApplication.getUiApplication().invokeAndWait(new Runnable() {
    public void run() {
        UiApplication.getUiApplication().requestForeground();
    });
}

你在哪里打电话给requestForeground?谢谢,但最终导致设备本身出现问题。代码很好。