Как создать таймер в Android, который сбрасывает переменную счетчика в 0 каждые 5 секунд? - PullRequest
1 голос
/ 27 августа 2011

Я делаю экстренное приложение, которое отправит SMS-сообщение 5 людям, когда нажата клавиша уменьшения громкости или меню. это мой код для обнаружения нажатия клавиш при запуске операции:

package com.application.tpa;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.KeyEvent;
import android.widget.Toast;

public class main extends Activity {
    /** Called when the activity is first created. */
    int ctrMenu=0,ctrkeyUp=0;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //startService(new Intent(main.this, PAservice.class));
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if ((keyCode == KeyEvent.KEYCODE_MENU)) {
            ctrkeyUp=0;
            ctrMenu++;
            if (ctrMenu==5)
            {
                Toast.makeText(this, "You pressed the Menu button!", Toast.LENGTH_LONG).show();
                ctrMenu=0;
            }
            //return true;
        }
        else if ((keyCode == KeyEvent.KEYCODE_VOLUME_DOWN)) {
            ctrMenu=0;
            ctrkeyUp++;
            if (ctrkeyUp==5)
            {
                Toast.makeText(this, "You pressed the Volume Down button!", Toast.LENGTH_LONG).show();                     
                ctrkeyUp=0;
            }
            //return true;
        }
        return super.onKeyDown(keyCode, event);
    }
}

Кто-нибудь знает, как создать таймер (или что-то еще) в Android, чтобы сбросить переменную моего счетчика в ноль каждые 3 секунды? так что я могу запустить некоторую процедуру, когда кнопка нажата 5 раз до 3 секунд .. Спасибо ..

Ответы [ 2 ]

8 голосов
/ 27 августа 2011

Вот как вы можете использовать таймер с помощью TimerTask:

 Timer timer = new Timer();

        timer.schedule(new TimerTask() {
            public void run() {

               // add your stuff here
                }
            }
        }, 3000, 3000);

Для отмены таймера вы можете использовать timer.cancel();

1 голос
/ 27 августа 2011

Используйте java.util.Timer и java.util.TimerTask классы.

...