2015-07-27 2 views
0

J'ai fait des recherches sur le sujet avant de l'implémenter. Il est, le mien est une application de lecteur de musique pour lequel je fais un widget, pour contrôler la lecture de la musique. Je voulais mettre un SeekBar dans le widget mais ce n'est pas supporté. ProgressBar est pris en charge mais il n'y a pratiquement aucun widget qui en utilise un. Je suis donc sceptique quant à l'utilisation d'un ProgressBar qui affecterait les performances de mon téléphone utilisateur (en termes de durée de vie de la batterie et d'utilisation de la mémoire).Afficher ProgressBar dans un AppWidget qui se met à jour toutes les secondes

Puisque le ProgressBar est destiné à afficher la position actuelle de la musique en cours de lecture, il devrait être mis à jour toutes les secondes. Je lis ici progress bar in appwidget for a playback service que la mise à jour ProgressBar d'un widget chaque seconde est une mauvaise idée. Mais le poste a plus de 4 ans. Impossible de trouver quelque chose de plus récent.

Question est, est-ce toujours une mauvaise idée d'utiliser un ProgressBar, qui se met à jour toutes les secondes, dans un widget d'application? Ou avez les dernières mises à jour android apporté de nouvelles façons de le faire efficacement? Si oui, alors comment y allons-nous?

Toute orientation serait vraiment utile.

Répondre

1

Question est, est-ce toujours une mauvaise idée d'utiliser un ProgressBar, qui se met à jour toutes les secondes, dans un widget d'application?

En général, c'est une mauvaise idée de mettre à jour un widget d'application chaque seconde, que cela implique ou non un ProgressBar. IPC fréquent est inefficace, d'autant plus que vous ne savez pas si l'utilisateur peut même voir le ProgressBar. Cela étant dit, dans votre cas d'utilisation, si vous ne mettez à jour que le ProgressBar pendant que votre application joue de la musique, la consommation d'énergie du widget d'application IPC sera réduite par l'épuisement de la musique.

+0

Merci pour la réponse. Le ProgressBar serait mis à jour uniquement lorsque mon application joue de la musique. Maintenant, comment dois-je faire? Je veux dire est-il possible de garder une référence du ProgressBar et de l'utiliser pour le mettre à jour dans un thread. ou est-il nécessaire à chaque fois de créer un RemoteView avec la progression mise à jour et de l'utiliser pour mettre à jour le widget? – Anjani

+0

@Anjani: "Je veux dire est-il possible de conserver une référence du ProgressBar et de l'utiliser pour le mettre à jour dans un thread" - le 'ProgressBar' n'est pas dans votre processus; vous n'avez jamais de référence à cela. "ou est-il nécessaire à chaque fois de créer un RemoteView avec la progression mise à jour et de l'utiliser pour mettre à jour le widget?" - AFAIK, oui. – CommonsWare

+0

Merci pour votre aide. J'apprécie vraiment cela. Je vais laisser cette question rester pendant un jour ou deux afin que quelqu'un d'autre puisse également partager son opinion sur le sujet. Sinon, je vais accepter celui-ci. Merci encore. – Anjani