2

So I'm using in my android program A thread to wait a second or more, but sometimes it does it wright and sometimes it doesn't wait at all, so is there maybe another way to wait a couple of seconds?

Thread logotimer = new Thread(){
    public void run(){
        try{
            sleep(1500);
            Intent leveloverview = new Intent("com.technopolisapp.FROGLEVEL");
            startActivity(leveloverview);
        }
        catch(InterruptedException e){
            e.printStackTrace();
        }
        finally{
            finish();
        }
    }
};

logotimer.start();
jww
  • 97,681
  • 90
  • 411
  • 885
stevedc
  • 483
  • 3
  • 8
  • 26

2 Answers2

7

Instead the thread sleeping concept you can use Handler...

new Handler().postDelayed(new Runnable(){
    public void run() {
        Intent leveloverview = new Intent("com.technopolisapp.FROGLEVEL");
        startActivity(leveloverview);
    }
}, 5000);

This code may be helpful for you...

Gray
  • 115,027
  • 24
  • 293
  • 354
Vishesh Chandra
  • 6,951
  • 6
  • 35
  • 38
  • I tryed this method but it still gets problems first was it this: can't create handler inside thread that has not called Looper.prepare(). Then I added Looper.prepare(). But then came the problem: only one looper may be created per thread – stevedc May 03 '12 at 10:33
4

You should take a look at the Timer class, which creates a new thread that will run whatever TimerTask (aka method) you specify once a certain time has elapsed. You can also schedule the timer to repeat at certain intervals.

Here's the Timer class: http://developer.android.com/reference/java/util/Timer.html

Here's a basic implementation of a Timer: http://steve.odyfamily.com/?p=12

laker
  • 569
  • 1
  • 4
  • 17