スプラッシュ画面を数秒間起動してから閉じて、2 番目の画面を起動しようとしています。
何らかの理由で、コードはスプラッシュ ページを表示する前に「スリープ」を実行し、スプラッシュ ページが一瞬だけ表示され、2 番目の画面がすぐに表示されます。つまり、アプリのアイコンをクリックすると、2 秒間待機してからスプラッシュが表示され、すぐに非表示になり、ホームスクリーンにジャンプします。
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);
}
}