2010-07-06 4 views
5

J'ai écrit une application Music Player et cela fonctionne très bien, mais quand une action de flip se produit ou quand je retourne la vue du joueur, je dois arrêter le lecteur et le redémarrer à la position où il était quand l'action est arrivée. Tout cela fonctionne, mais cela signifie un arrêt breif et commencer.Android Media Player Threading

Comment puis-je exécuter le lecteur multimédia dans un thread différent et toujours mettre à jour ma barre de recherche?

Merci

Répondre

6

Essayez de lancer le lecteur multimédia dans un foreground service. C'est un peu de travail, mais c'est comme ça qu'on devrait le faire de toute façon.

Le service gère l'exécution de tout dans un thread d'arrière-plan et peut être configuré pour publier des mises à jour à votre interface utilisateur via des messages ou des rappels.

De plus, un service de premier plan n'a pas besoin d'être lié à une activité, il peut donc continuer à fonctionner même si vous quittez l'écran de votre lecteur. Le service doit fournir une notification continue à l'utilisateur qui affichera probablement la chanson en cours, l'artiste, cliquez pour mettre en pause, etc.

+0

IntentServices s'exécute dans un thread distinct tandis que les services réguliers s'exécutent dans le thread UI, par défaut. –