Gestionnaire d'.postdelayed
Je suis à l'aide de gestionnaire.postDelayed méthode pour créer un peu de retard pour l'animation des trucs.
Avec qui je joue une chanson aussi bien à l'aide du lecteur multimédia. L'utilisateur peut quitter cette classe d'action en cliquant sur suivant. Mais sur l'écran suivant, la même chanson est de continuer même si j'ai appelé la méthode stop dans le prochain bouton de onclicklistener.
Est-ce dû à la timedelay qui est ajouté, il est exécuté après l'activité suivante est chargé. Une idée?
handler.postDelayed(new Runnable() {
public void run() {
mp = MediaPlayer.create(getApplicationContext(), R.raw.num2);
mp.start();
imageView1.setImageResource(R.drawable.countcat2);
}
}, 2000);
OriginalL'auteur nasaa | 2011-05-16
Vous devez vous connecter pour publier un commentaire.
Avez-vous d'ajouter un
Log
pour voir sirun()
est appelé? Je suppose que votre gestionnaire obtient non; après tout,postDelayed
va attendre jusqu'à ce que le boucleur coups de pied à nouveau.Je suppose que votre animation est plus rapide que ceux 2000ms? Vous ne seriez pas en mesure d'avoir votre gestionnaire appelé de toute façon après votre activité est parti, c'est l'accès
imageView1
qui je présume est détruit dansonDestroy
.Vous pourriez envisager d'ajouter un drapeau qui force l'opération pour être appelé immédiatement dans
onDestroy
, et/ou vous pouvez utiliser unTimer
. Dans le cas de la minuterie, assurez-vous de ne pas utiliser quelque chose commeimageView1
après qu'il a été détruit.OriginalL'auteur EboMike
Utiliser des threads. Et puis l'arrêter avec une interruption:
Ou vous pouvez utiliser la postDelayed fonction
vous trouverez qu'il ya un peu de différence entre ces deux méthodes. Pour l'interrompre, faire quelque chose comme ceci:
Espère que j'ai aidé.
OriginalL'auteur user2197563