J'ai besoin de mon application pour déclencher une alerte pendant un certain temps après que l'utilisateur a appuyé sur un bouton. La documentation donne l'impression que Handler est ce dont j'ai besoin, et l'utilisation semble être mortel.Pourquoi le gestionnaire ne déclenche-t-il pas l'alerte comme prévu?
Cependant, je trouve que malgré l'utilisation de postDelayed, ma routine est en cours d'exécution. Je sais qu'il me manque quelque chose d'évident, mais je ne peux tout simplement pas le voir. Pourquoi le code ci-dessous fait-il vibrer le téléphone immédiatement plutôt que d'attendre une minute?
...
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;
}
Je n'aime pas downvoting ... bien, vous feriez mieux de résoudre votre réponse. Dans ce cas, Vibrer() agit comme une méthode, pas comme une classe – Cristian
Trié, merci pour le heads-up. – fredley