Мне нужно, чтобы мое приложение вызывало оповещение через определенное время после того, как пользователь нажал кнопку. Из документации видно, что мне нужен именно Handler, а его использование кажется совершенно мертвым.
Однако я обнаружил, что, несмотря на использование postDelayed, моя процедура запускается немедленно. Я знаю, что упускаю что-то очевидное, но я просто не вижу этого. Почему приведенный ниже код заставляет телефон вибрировать сразу, а не ждать минуты?
...
final Button button = (Button) findViewById(R.id.btnRun);
final Handler handler = new Handler();
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
...
handler.postDelayed(Vibrate(), 60000);
}
});
...
private Runnable Vibrate() {
Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
v.vibrate(300);
return null;
}