Подождите 3 секунды или пользовательский клик

Я пытаюсь создать ситуацию, когда я жду небольшой промежуток времени, скажем 3 секунды, и продолжаю. Но если пользователь нажимает на мою экранную кнопку, то в любом случае продолжаю. Оба события будут вызывать одинаковое поведение, а именно обновлять текст на экране. Какие-нибудь мысли??

Новичок в Android, но он работает

заранее спасибо

2 ответа

Решение

Попробуйте что-то вроде этого:

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;
}    

Он ожидает 3 секунды, чтобы продолжить, но если пользователь касается экрана, поток уведомляется, и он перестает ждать.

Попробуйте следующее,

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
}
Другие вопросы по тегам