原文地址链接
高级的Java游戏/应用的启动时间会很长,假如你让一个漂亮的跳转页面显示在程序上,通常会增加用户的好感。然而,这样的效果可能会超出你的想象。
假如你尝试在主线程里简单的显示一个跳转页面,你可能会碰到问题,你会注重到当你的程序启动并顺序执行时,跳转页面会一闪而过。或许,它可能根本不会出现!这是可能的,只要你的代码与下面类似:
public void startApp() {
myDisplay.setCurrent(mySplashScreen);
doAllSlowInitializations();
myDisplay.setCurrent(myGameScreen);
}
这个问题的原因是因为应用程序治理器不答应在startApp()方法执行过程中看见任何Screen或Canvas。可以参考MIDP Javadoc的javax.microedition.lcdui包获取更多信息。
技巧就是应该把显示跳转页面和游戏的初始化用不同的线程来处理,就像下面的代码例子那样。这将使startApp()方法很快就能执行完,并且跳转页面能尽可能显示更长的时间。两个线程可以使用共享变量来实现同步,在初始化完成时,跳转页面应该消失。
public void startApp() {
Thread splashScreenTest = new Thread(new SplashScreenTest.SplashScreen());
splashScreenTest.start();
Thread myGameThread = new Thread(this);
myGameThread.start();
}
下面的例子程序就是使用这样的技术来显示一个跳转页面的。
另外,大多数常规技术是使用晚装载来减少启动时间,它的意思是当要使用对象和资源时才初始化它们。这种方法能很好的减少你的程序对内存的需求,但是程序也有出错的危险,应当仔细考虑。
下载程序源代码