I want my activity to show a screen for 3 seconds, then go back to previous screen. But when i use
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);
But unfortunately, this does not work. This doesent show the activity waits 3 seconds and goes back. However, i want it to show its contents before going back. How can i do it ?
Advertisement
Answer
You should remove this Thread.sleep(3000);
which block the ui thread. You should never block the ui thred. You can use a Handler postDelayed with a delay and then startActivtiy.
Handler handler = new Handler(); handler.postDelayed(new Runnable(){ @Override public void run(){ // do something } }, 3000);
To go back to previous Activity you can call finish()
.
Also if you need to go back to the previous activity for 3 seconds why do you need
Intent i = new Intent(this,myActivity.class); startActivity(i);
Calling finish()
will do the job