我正在尝试启动启动画面几秒钟,然后将其关闭并启动第二个屏幕。
出于某种原因,代码在显示启动页面之前执行“睡眠”,启动页面仅出现几分之一秒,第二个屏幕立即出现。换句话说,当我单击应用程序图标时,它会等待 2 秒钟,然后显示并立即隐藏启动画面并跳转到 HomeScreen。
我尝试了许多不同的组合,包括invokeAndWait()
Splash 类中的回调和线程,但无济于事。
我也浏览了很多关于 SO 的帖子。
请注意,我不希望启动页面打开下一个屏幕;启动页面 ( AppStart
) 的启动器应该启动下一个屏幕。
请提出解决方案。
代码:
public class AppStart extends UiApplication
{
public static void main(String[] args) {
AppStart app = new AppStart();
app.enterEventDispatcher();
}
public AppStart() {
final Splash splashscreen = new Splash();
UiApplication.getUiApplication().invokeLater(new Runnable() {
public void run() {
UiApplication.getUiApplication().pushScreen(splashscreen);
}
});
Thread waitthread = new Thread()
{
public void run()
{
try {
sleep(2000);
} catch (InterruptedException e) {
}
finally
{
UiApplication.getUiApplication().invokeLater(new Runnable() {
public void run() {
UiApplication.getUiApplication().popScreen(splashscreen);
}
});
UiApplication.getUiApplication().invokeLater(new Runnable() {
public void run() {
UiApplication.getUiApplication().pushScreen(new HomeScreen());
}
});
}
}
};
waitthread.run();
}
}
溅
public class Splash extends MainScreen {
public Splash()
{
Bitmap bgImg = Bitmap.getBitmapResource("480x320-SplashScreen.png");
Background bg = BackgroundFactory.createBitmapBackground(bgImg);
getMainManager().setBackground(bg);
}
}