我编写了一个使用蓝牙,在对等移动设备上搜索文件并下载的J2ME应用程序。我想让我的应用程序在后台运行,每当我接到电话或信息时,稍后在几秒钟后恢复。有人有这方面的经验吗?是否有一种方法可以在后台运行Midlet?
要将J2ME应用程序设置为后台运行,请在您的Midlet类中使用以下方法:
Display.getDisplay (this).setCurrent (null);
要恢复屏幕,请使用以下方法:
Display.getDisplay (this).setCurrent (myCanvas);
其中 myCanvas 是您的画布实例化
R
顺便提一句,即使在您的 midlet 被隐藏时,您仍然可以使用线程或计时器在后台执行任务。
另外需要注意的是,这种方法并不能在所有型号的手机上都适用。(在 Nokia s60、SonyEricsson 上可行,但在 Nokia s40、Samsung 和一些其他手机上不行。)
设备能否在后台运行应用程序取决于其多任务处理的能力。因此,更昂贵的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、三星和其他一些设备)。