Exécuter du code sur le thread principal dans Android sans accès à une Activité?

J'ai un Android service qui démarre et maintient un thread d'arrière-plan.

De temps à autre, le thread d'arrière-plan doit faire un rappel sur le thread principal. Je suis perplexe quant à la façon de le faire.

Je ne peux pas appeler cela.runOnUiThread parce que "cela" est une instance de Service, pas d'Activité, et pour un Service qui n'ont pas de runOnUiThread méthode.

Je ne peux pas créer ou exécuter une AsyncTask, parce que la documentation pour les AsyncTask dit que le constructeur et la méthode execute doit être invoqué à partir du thread d'INTERFACE utilisateur.

Dois-je conserver une référence à l'activité qui est de l'utilisation du service et appeler sa runOnUiThread méthode, ou est-il un autre moyen de faire quelque chose sur le thread d'INTERFACE utilisateur?

Grâce.

  • "le thread d'arrière-plan doit faire un rappel sur le thread principal" -- pourquoi?
  • L'utilisateur du service est une activité. Il a besoin de rappels sur le thread principal de sorte qu'il peut mettre à jour des éléments de l'INTERFACE utilisateur. Je suppose que je pourrais revenir sur le thread d'arrière-plan et de le rendre responsable de la planification d'un thread d'INTERFACE utilisateur de rappel, mais il serait plus pratique pour le consommateur du service, si je pouvais le faire.
  • Oh, ciel pas.
InformationsquelleAutor Frank LaRosa | 2012-06-25