2

我想最小化我的应用程序,并在计时器结束后将其取回。

我使用下面的代码。

要最小化应用程序,请使用以下代码行:

   Display.getDisplay (MIDLET_CLASS_NAME).setCurrent (null);

要恢复屏幕,请使用以下命令:

   Display.getDisplay (MIDLET_CLASS_NAME).setCurrent (myCanvas);

但是,当手机显示屏被关闭并进入时钟模式时,我的 midlet 显示屏不会显示,直到按下任何按钮。

任何的想法?

4

1 回答 1

1

从您的问题看来,您希望setCurrent以某种方式“强制”设备立即显示您的屏幕,或者仅在屏幕可见后才返回。

事实并非如此,正如Display.setCurrent的 API 文档中明确解释的那样:

请求Displayable在显示器上显示不同的对象。更改通常不会立即生效。它可能会延迟,以便在事件传递方法调用之间发生,尽管不能保证在调用下一个事件传递方法之前发生。该setCurrent方法立即返回,无需等待更改发生...

...如果应用程序在后台,传递一个非空引用setCurrent可能会被应用程序管理软件解释为应用程序请求被带到前台的请求...这些只是请求,并且有不要求应用程序管理软件及时遵守这些要求,如果有的话......


考虑重新设计您的 MIDlet 以适应指定的行为。

如果myCanvas是 Canvas 的一个实例,则可以使用showNotify()事件。

对于通用Displayable屏幕,isShown()方法检查它是否在显示器上实际可见。

有时让用户明确地确认从后台返回是有意义的,比如

display.setCurrent(new Alert("back to foreground", "dismiss to continue...",
        null, AlertType.INFO), myCanvas);
于 2012-06-22T07:02:30.457 回答