如何让应用等待,然后开始活动或回去?

我希望我的活动显示3秒的屏幕,然后返回上一屏幕。 但是当我使用时

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.welcome_layout); TextView tvResult = (TextView)findViewById(R.id.textView1) Thread.sleep(3000); Intent i = new Intent(this,myActivity.class); startActivity(i); 

但不幸的是,这不起作用。 此事件显示活动等待3秒后返回。 但是,我希望它在返回之前显示其内容。 我该怎么做 ?

你应该删除这个Thread.sleep(3000); 阻止ui线程。 你永远不应该阻止ui thred。 您可以使用Handler post延迟延迟,然后startActivtiy。

 Handler handler = new Handler(); handler.postDelayed(new Runnable(){ @Override public void run(){ // do something } }, 3000); 

要返回上一个活动,您可以调用finish()

此外,如果您需要返回上一个活动3秒钟,为什么还需要

 Intent i = new Intent(this,myActivity.class); startActivity(i); 

调用finish()将完成这项工作

这不是采取行动的方式。 使用Thread.sleep你基本上强制活动等待3000秒才能继续前进。 因此活动中的任何内容都将有效,直到3秒钟过去。

你可以这样做:编辑:现在它运作良好。

 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.welcome_layout); TextView tvResult = (TextView)findViewById(R.id.textView1) new Thread(new Runnable() { @Override public void run() { try { Thread.sleep(3000); Intent i = new Intent(getApplicationContext(), myActivity.class); startActivity(i); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }).start(); }