我有2个布局和2个活动,每个活动对应一个布局,其中一个是SplashActivity,另一个是MainActivity。我希望应用程序打开splashActivity(splash XML显示徽标),等待5秒钟并打开主活动,但是由于线程的原因,setContentView无法正常工作。
PS此外,任何相关的文档链接将非常有用,在此先感谢
@Override
受保护的void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState); setContentView(R.layout.splash_screen);
Thread timer = new Thread() { public void run() { try { sleep(5000); } catch (InterruptedException ex) { ex.printStackTrace(); } try { Class mainMenu = Class.forName("com.carmine.project.MenuActivity"); Intent openMainMenu = new Intent(SplashActivity.this, mainMenu); startActivity(openMainMenu); } catch (ClassNotFoundException e) { e.printStackTrace(); } } }; timer.run(); }
你的问题是你打电话timer.run();
而不是timer.start();
timer.run();
在执行该行的线程的同一上下文上调用run方法(在您的情况下,使UI线程等待5s,并阻塞其他所有操作)。timer.start()
产生一个新线程
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句