17

I am trying to set up a situation where I am waiting for a small period of time say 3 seconds and move on. But if the user clicks my on-screen button then move on as I would have anyway. Both events will trigger the same behaviour namely to update text on the screen. Any thoughts??

New to Android but mclovin' it

Thanks in advance

codemanusa
  • 579
  • 2
  • 5
  • 7

2 Answers2

26

Try something like this:

private Thread thread;    

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.layoutxml);

    final MyActivity myActivity = this;   

    thread=  new Thread(){
        @Override
        public void run(){
            try {
                synchronized(this){
                    wait(3000);
                }
            }
            catch(InterruptedException ex){                    
            }

            // TODO              
        }
    };

    thread.start();        
}

@Override
public boolean onTouchEvent(MotionEvent evt)
{
    if(evt.getAction() == MotionEvent.ACTION_DOWN)
    {
        synchronized(thread){
            thread.notifyAll();
        }
    }
    return true;
}    

It waits 3 seconds to continue but if the user touches the screen the thread is notified and it stops waiting.

ferostar
  • 7,074
  • 7
  • 38
  • 61
  • Sorry, mSpashThread was actually thread, forgot to update that reference making the code as general as posible – ferostar Apr 26 '11 at 14:18
-3

Try the following,

button = (Button) findViewById(R.id.buttonView);
button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Runnable clickButton = new Runnable() {
            @Override
            public void run() {
                // whatever you would like to implement when or after clicking button
            }
        };
        button.postDelayed(clickButton, 3000); //Delay for 3 seconds to show the result
}
  • please don't post the same answer to several questions - they either don't fit exactly or the question is a duplicate and should be flagged as such – kleopatra Feb 08 '14 at 08:31