我正在尝试为我的应用程序创建一个加载屏幕,在MainActivity中我有一个名为timer的线程,它在5秒后启动下一个活动,但由于某种原因它没有显示xml ...当线程未启动时xml正常显示但是一旦我启动线程屏幕是空白的。线程工作,它改变活动,但我的“logo.xml”没有显示。
公共类MainActivity扩展了ActionBarActivity {
Thread timer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.logo);
timer = new Thread(){
public void run()
{
try{
int ltimer =0;
while(ltimer<5000){
sleep(100);
ltimer += 100;
}
startActivity(new Intent("com.JMS.sinktheship.MENU"));
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally
{
finish();
}
}
};
timer.run();
}
答案 0 :(得分:1)
timer.run();
它在调用run方法的同一个线程中执行。你可能打电话给start()
。在您的代码中,您将阻止UI线程,例如5秒
答案 1 :(得分:0)
黑带是正确的,在完成执行onCreate()之后,视图呈现。
我建议你在 onResume 中启动线程,并且(非常重要)在线程结束时通过调用finish()方法终止活动(否则活动将保留在活动中)堆叠并将通过后退按钮再次渲染。)