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 回答