2009-07-05 90 views
7

我需要我的J2ME应用程序在后台运行,并仍然允许用户使用他的手机没有问题。 该应用程序仍然需要在后台处理一些事件。如何最小化J2ME应用程序?

我还想让用户停止应用程序,如果他想。

我该如何做到这一点?

回答

-2
MIDlet.notifyPaused() 
+0

我需要midlet继续在后台运行(界面不显示,最小化就像桌面应用程序一样)。我的理解是使用notifyPaused()方法会立即暂停midlet的执行。 – Attilah 2009-07-05 16:56:07

+0

但是如果你的手机没有调用这个'notifyPaused()'回调方法呢? 相反,您的手机资源可能会非常低,并决定一起关闭您的所有 J2ME程序 – joe 2009-07-06 08:35:50

3

在后台运行一个MIDlet,但没有在J2ME标准,我认为指定仍在处理中。正常情况下,当你的midlet移动到后台时,应该调用暂停的方法。

但并非每个供应商都以这种方式实施。在保持最小化的情况下,Symbian会保持程序运行,就好像没有变化一样。至少在N80和N90上。

0

如果你的应用程序在后台,那么它不会收到任何事件。所以我不知道它如何在后台处理任何事件。如果预载J2ME应用程序,那么您可以与手机制造商合作,并获得某些jad属性以将您的midlet放入后台。您因此可以不允许用户退出该应用程序。您可能想要考虑这个用例。

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

1

,这并不总是支持,但开出的手机,该命令是:

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

设备的运行在后台的应用程序的能力取决于其多任务处理能力。因此,更昂贵的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,三星一些其他)。