2012-06-21 127 views
2

我想盡量減少我的應用程序,並在計時器結束後恢復它。儘量減少和取回顯示屏

我使用下面的代碼。

爲了減少下面的代碼行應用程序中使用:

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

爲了讓屏幕的背面使用以下命令:

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

但是,當手機顯示解僱,將時鐘模式我的MIDlet顯示直到按下任何按鈕才顯示。

有什麼想法嗎?

+0

你嘗試調用的setCurrent(myCanvas)後添加到MIDLET_CLASS_NAME.resumeRequest()的調用? –

+0

還沒有,但我儘快做到了 – Mostafa

回答

1

從你的問題聽起來,你希望setCurrent以某種方式「迫使」設備立即顯示在屏幕或可能返回屏幕變得可見之後。

這不是這樣,儘可能清楚API文檔中解釋了Display.setCurrent:將不同的對象Displayable要在顯示器上可見

請求。 更改通常不會立即生效。它可以被延遲,使得其事件傳遞方法調用之間發生時,儘管它不保證被稱爲下一個事件傳遞方法之前發生。該setCurrent方法立即返回,而無需等待的變化要發生......

...如果應用程序是在後臺,通過一個非空的參考setCurrent可通過管理軟件的應用解釋作爲該應用程序請求被帶到前臺的請求......這些只是請求,並沒有要求,應用管理軟件符合這些要求及時,如果在所有 ...


考慮重新設計您的MIDlet以適應指定的行爲。

如果myCanvas是帆布的一個實例,可以使用showNotify()事件。

對於通用Displayable屏幕isShown()方法檢查它是否在顯示屏上實際可見。

有時甚至可以使感,讓用戶明確確認與背景的回報,像

display.setCurrent(new Alert("back to foreground", "dismiss to continue...", 
     null, AlertType.INFO), myCanvas);