我有2个布局,2个Activity,每一个对应一个布局,其中一个是SplashActivity,另一个是MainActivity。我希望应用程序打开splashActivity(splash XML显示徽标),等待5秒并打开主活动,但由于线程的原因,setContentView无法正常工作。
附:此外,任何相关文档链接都会非常有用,提前致谢
@覆盖
protected void onCreate(Bundle savingInstanceState) {
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 线程等待 5 秒,并阻止所有其他操作)。timer.start()
产生一个新线程
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)