Je connais le problème général de "Impossible de créer un gestionnaire dans le thread qui n'a pas appelé Looper.prepare()" a été demandé avant, mais j'ai du mal à comprendre comment cela s'applique dans ce cas. J'essaie de construire un nouveau CountDownTimer dans un thread non-UI, ce qui, je pense, est la cause de cette erreur, mais je ne comprends pas vraiment pourquoi le timer devrait être utilisé dans le thread principal. De ce que je peux voir, il semble qu'il a un gestionnaire de rappel qui doit s'exécuter dans un thread qui a un looper, ce que le thread non-UI n'a pas par défaut. Il semble que mes options sont: 1) Faire ce thread non-UI avoir un Looper ou 2) faire une méthode étrange sur mon thread UI qui peut construire cette minuterie, les deux qui me semblent loufoque. Quelqu'un peut-il m'aider à comprendre les implications?CountDownTimer: "Impossible de créer un gestionnaire à l'intérieur du thread qui n'a pas appelé Looper.prepare()"
En outre, est-ce que quelqu'un connaît des liens utiles qui éclairent le Looper et MessageQueue? Je ne les saisis pas bien, comme je suis sûr que j'ai montré. Je vous remercie!
Je ne crois pas que ce soit le cas. J'ai commenté tout le code à l'intérieur de la classe anonyme, donc tout ce qu'il appelle super dans le constructeur, mais je reçois toujours la même erreur. Est-ce parce que le CountDownTimer a une méthode de rappel pour quand il est fini, et cela doit être "tiré" par le looper? C'est la confusion que j'espère éclaircir. Nous pouvons même abstraire le problème de mon problème particulier - j'essaie simplement de comprendre comment tout cela s'accorde. Je vous remercie. – skaz
Oh, je pense que j'ai mal compris votre question. Puis-je demander pourquoi vous utilisez un 'CountdownTimer' dans un thread nonUI? Je pense que le point de 'CountdownTimer' est de pouvoir facilement mettre à jour le thread UI. Il semble que 'onTick()' et 'onFinish()' sont supposés s'exécuter sur le thread de l'interface utilisateur. Pourquoi ne pas simplement utiliser une minuterie Java régulière? – Falmarri
Je suppose que je peux utiliser une minuterie régulière. Quoi qu'il en soit, pourquoi CountDownTimer bombe dans le constructeur si je ne fais pas de mise à jour de l'interface utilisateur? – skaz