Java 如何最小化J2ME应用程序?

Java 如何最小化J2ME应用程序?,java,java-me,Java,Java Me,我需要我的J2ME应用程序在后台运行,并且仍然允许用户毫无问题地使用他的手机。 应用程序仍然需要在后台处理一些事件 我还想允许用户停止应用程序,如果他想 我怎样才能做到这一点呢?在后台运行midlet,但在j2me标准中仍然没有指定处理。通常,当midlet移动到后台时,应该调用暂停的方法 MIDlet.notifyPaused() 但并非所有供应商都以这种方式实施。Symbian使您的程序保持运行,就好像最小化时没有任何更改一样。至少在N80和N90上。如果您的应用程序位于后台,则它不会接收

我需要我的J2ME应用程序在后台运行,并且仍然允许用户毫无问题地使用他的手机。 应用程序仍然需要在后台处理一些事件

我还想允许用户停止应用程序,如果他想


我怎样才能做到这一点呢?

在后台运行midlet,但在j2me标准中仍然没有指定处理。通常,当midlet移动到后台时,应该调用暂停的方法

MIDlet.notifyPaused()

但并非所有供应商都以这种方式实施。Symbian使您的程序保持运行,就好像最小化时没有任何更改一样。至少在N80和N90上。

如果您的应用程序位于后台,则它不会接收任何事件。所以我不知道它如何在后台处理任何事件。如果它是一个预加载的J2ME应用程序,那么您可以和手机制造商合作,获得某些jad属性,将您的midlet置于后台。因此,您不能允许用户退出应用程序。您可能需要仔细考虑这个用例


另一方面,您可以在Blackberry应用程序中执行所有这些操作。

这并不总是受支持,但在执行这些操作的手机上,命令是:

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

设备在后台运行应用程序的能力取决于其多任务能力。因此,与低成本设备相比,更昂贵的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、SonyEricsson,但不适用于诺基亚s40、三星和其他一些设备)。

我需要midlet在后台继续运行(界面不显示,最小化,就像桌面应用程序一样)。我的理解是,使用notifyPaused()方法会暂时暂停midlet的执行。但是,如果您的手机不调用此“notifyPaused()”回调方法,该怎么办?相反,您的手机可能资源不足,决定同时关闭J2ME程序。这会告诉midlet暂停,而不是检测暂停方法。我的意思是,当我的应用程序在后台时,它仍会偶尔在单独的线程中向预定义的号码发送短信。可能吗?你可能做不到。但是,您可以保持HTTP连接打开,向网页发送消息,将sms发送到该号码。但这在支持多任务处理的设备上是可能的,比如诺基亚S60。