日期:2014-05-20  浏览次数:20824 次

j2me程序接了电话后又进入第一屏
j2me程序已经换了好几屏了,可是当接了电话,或按了切换程序的快捷键后,又回到第一屏,没办法回到刚才的那屏?要怎么解决?我是在k750上试的.

------解决方案--------------------
切换应用时,会调用startApp(),
看看你的startApp()方法里是否写了设置初始界面的代码.
切记startApp()方法并不是程序启动时才调用的,很多地方都可能会被调用,或被调用很多次.


saltedfish
------解决方案--------------------
设置一个current参数,current指向程序所在界面
------解决方案--------------------
外部事件,比如电话,短信等
处理完外部事件後返回程序,有可能调用MIDlet.startApp() 或者 Canvas.showNotify()
各个手机可能不同,特别对于调用startApp的,如果你在startApp里写的启动代码,切不检测是否重复启动,就会出现上面的问题
------解决方案--------------------
以前我给别人回答过。再贴过来。

切出去,回来,就自动运行startApp函数里的内容。无论是系统切出还是你自己切出去。不光拨号,来短信和电话也一样的。

给你一个简单的实现方法。仅供参考。

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class MainMidlet extends MIDlet {
private static MainMidlet instance;
private Displayable nowScreen;
private Display display;

public MainMidlet() {
instance = this;
nowScreen = new CanvasTest();
}

public void startApp() {
display = Display.getDisplay(this);
display.setCurrent(nowScreen);
}

public void pauseApp() {
nowScreen = display.getCurrent();
}

public void destroyApp(boolean unconditional) {
}

public static void quitApp() {
instance.destroyApp(true);
instance.notifyDestroyed();
instance = null;
}
}

暂停时系统自动调用pauseApp函数,保存了当前页面。再回复回来,系统自动调用startApp,把保存的页面显示出来。