2012-09-06 101 views
1

我開發了一款遊戲,但這是我面臨的嚴重問題。我沒有任何線程在我的代碼,但每當我使用警報在j2me顯示警報後的空白屏幕

Display.setCurrent(my_alert)// my_alert has a timeout of 3000ms 

那麼此警報後,在空白屏幕中appears.When按下屏幕,那麼我的遊戲畫布再次出現。在設置警報之前,我的棋盤遊戲畫布被設置爲當前顯示。自動鍵盤鎖定後也會出現此問題。

此警報對我的遊戲至關重要,請提出解決方案。

回答

2

這樣的問題通常表明的GameCanvas方法showNotify()的丟失或不正確控制裝置:

該實現調用showNotify()緊接在此之前被帆布可見在顯示器上。 Canvas子類可以重寫此方法以在顯示之前執行任務,例如設置動畫,啓動定時器等。此類在Canvas類中的默認實現爲空。

上述方法在從警報返回到先前屏幕時被調用。 GameCanvas應該以某種方式觸發重畫屏幕(例如使用repaintflushGraphics方法),否則它將顯示爲空白。

在自動鍵盤鎖定後出現此問題的事實使得更有可能showNotify在您的MIDlet中沒有正確完成。

+0

我用repaint(),它工作,但鍵盤鎖定後問題仍然存在。 – E1T1

+0

@Eda有趣。與鍵盤鎖問題似乎是不同的。在'showNotify'中添加[logging](http://stackoverflow.com/a/12167957/839601「eg這裏解釋」),以確定它是否被調用 – gnat

+0

我添加了日誌記錄,並且showNotify()總是在調用之後警報到期。 – E1T1