0

スプラッシュ レイアウトを 5 秒間表示してから、メインメニュー レイアウトに切り替えようとしています。画面が約 5 秒間空白になり、メインメニュー レイアウトがポップアップします。スリープせずにスプラッシュ レイアウトを実行すると、問題なく実行されるので、問題はないと思います。何か案は?

   @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.splash);
        try
        {
            Thread.sleep(5000);
        }
        catch (InterruptedException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        mainMenu();
    }




    private void mainMenu()
    {
        setContentView(R.layout.mainmenu);

    }
4

1 に答える 1

1

これは、メイン UI スレッドで Thread.sleep を実行しているためです。これはお勧めできません。

代わりにタイマーを使用し、以下のコードを使用してください..

private Timer timer;
private Handler handler;
@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.splash);
    handler = new Handler();

        timer = new Timer();
        TimerTask timerTask = new TimerTask() {
        @Override
        public void run() {
            handler.post(new Runnable() {
                @Override
                public void run() {
                    YourActivity.this.setContentView(R.layout.mainmenu);
                }
            });

        }
    };
    timer.schedule(timerTask, 5000);
}
于 2013-04-06T18:48:13.677 に答える