2009-07-05 93 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,三星一些其他)。

相關問題