LG KG90n屏幕闪动问题和联网时弹出系统提示窗口闪动问题
LG KG90n是中国移动游戏基地手机系列中的一款,240x320分辨率的屏幕,不支持蓝牙,下载jar的时候只能使用OTA (Over The Air)下载且下载速度极慢,一般需要五六分钟。不过总体来说性能还可以。做j2me应用时,jar包可以达到600k以上,内存也还算充裕。但是有手机的jvm不是特别完善,开发时如果不注意会出现一些难缠的问题。
以下就是我遇到过的2个问题,试验了多遍得出的结果。
1,屏幕闪动问题
现象:进入游戏后,屏幕总是会闪动,但其实游戏还算流畅。
问题出在屏幕刷新,该手机不允许一帧内对屏幕进行两次刷新。何谓两次刷新?对比一下代码比较好理解一点。
问题代码:
public void paint(Graphics g){ g.setColor(-1); g.fillRect(0, 0, SCR_W, SCR_H); Graphics gBuf = imgBuf.getGraphics(); //imgBuf is an Image of screen size as the screen buffer game.draw(gBuf); g.draw(imgBuf, 0, 0, 0);}
public void paint(Graphics g){ Graphics gg = g; if(imgBuf != null)//imgBuf is an Image of screen size as the screen buffer gg = imgBuf.getGraphics(); gg.setColor(-1); gg.fillRect(0, 0, SCR_W, SCR_H); game.draw(gg); if(imgBuf != null) g.draw(imgBuf, 0, 0, 0);}
public void run(){ while(true){ repaint(); serviceRepaints(); }}public void keyPressed(int keycode){ if(keycode == NUM_0){ midlet.platformRequest(url); //此处会出现系统联网提示 }}
public void run(){ while(true){ gamelogic(); repaint(); serviceRepaints(); if(keyHold != INVALID_KEY) keyHold = INVALID_KEY; }}int keyHold;void gamelogic(){ if(keyHold == NUM_0) midlet.platformRequest(url);}public void keyPressed(int keycode){ keyHold = keycode;}