如何让应用等待,然后开始活动或回去?
我希望我的活动显示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(); }