如何让J2ME应用在后台运行?

8

我编写了一个使用蓝牙,在对等移动设备上搜索文件并下载的J2ME应用程序。我想让我的应用程序在后台运行,每当我接到电话或信息时,稍后在几秒钟后恢复。有人有这方面的经验吗?是否有一种方法可以在后台运行Midlet?


已经有一个关于如何最小化J2ME应用程序的问题在https://dev59.com/VkjSa4cB1Zd3GeqPEEp5上。 - Maksym Gontar
2个回答

10

要将J2ME应用程序设置为后台运行,请在您的Midlet类中使用以下方法:

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

要恢复屏幕,请使用以下方法:

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

其中 myCanvas 是您的画布实例化

R

顺便提一句,即使在您的 midlet 被隐藏时,您仍然可以使用线程或计时器在后台执行任务。

另外需要注意的是,这种方法并不能在所有型号的手机上都适用。(在 Nokia s60、SonyEricsson 上可行,但在 Nokia s40、Samsung 和一些其他手机上不行。)


2

设备能否在后台运行应用程序取决于其多任务处理的能力。因此,更昂贵的PDA类型设备比低成本设备更有可能支持后台执行。

后台执行:

private Display display = Display.getDisplay(this);
private Displayable previousDisplayable;

public void toBack() {
previousDisplayable = display.getCurrent();
display.setCurrent(null);
}

并使其位于前台:

public void toFront() {
display.setCurrent(previousDisplayable);
}

但请注意,它不支持每一种设备。(适用于诺基亚s60、索尼爱立信,但不适用于诺基亚s40、三星和其他一些设备)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接