2010-11-18 11 views
1

J'essaye d'écrire une petite application dans Android. Mon application est sur Widgets. J'ai un doute basique sur l'utilisation de RemoteViews. J'ai trouvé que chaque fois que je met à jour un bouton ou une mise en page de l'interface utilisateur, un nouvel objet de remoteviews est créé. Est-ce que ce sera un problème avec la performance? un exemple de code est la suivante:Performance RemoteViews dans Android

http://android-developers.blogspot.com/2009/04/introducing-home-screen-widgets-and.html

updateViews = new RemoteViews(context.getPackageName(), R.layout.widget_message); 

même pour la mise à jour des vues à chaque fois, nouvel objet RemoteView est créé. S'il vous plaît aidez-moi à comprendre cela.

+0

serait-il possible d'enregistrer le RemoteView créé (comme dans le fournisseur ou le service), puis de le modifier? Je me demandais juste. n'a pas beaucoup étudié. –

Répondre

0

Non, ce n'est pas un problème. Je travaille avec StackViewsWidget exemple pour construire un widget en nid d'abeilles qui a un RemoteViews pour chaque carte dans le jeu de cartes qui shuffle acheter, et chaque carte est recyclée et reconstruite à partir de ce que je peux dire dans le débogueur, et c'est lisse comme le beurre à travers les vues sur mon Xoom.

0

Vous pourriez envisager de créer un seul objet en utilisant un motif singleton. Cela peut être fait en implémentant un singleton pour votre classe RemoteViews puis en utilisant ce singleton pour créer un objet de RemoteViews. En fait, le problème réside dans la mémoire de la machine sur laquelle vous exécutez l'application Android. Si vous êtes capable d'augmenter cela en faisant quelques paramètres de profilage et de performance, vous pouvez très bien créer de nouveaux objets en utilisant le code ci-dessus. Mais si vous avez une limitation alors je suggère le modèle singleton. Cette solution suppose que la machine sur laquelle vous travaillez a une puissance de traitement suffisante.

+0

Dans le contexte d'objets à très courte durée de vie comme les RemoteViews créés pour afficher des vues sur appwidgets, je suis à peu près sûr que le pattern singleton est le moins approprié. L'avez-vous essayé dans un appwidget du monde réel? –