2010-12-02 5 views
2

J'ai implémenté un widget mais j'ai des problèmes pour le rafraîchir. Je reçois la mise à jour initiale, et encore si je le quitte depuis des lustres.Android Widget Refresh

Cependant, je souhaite que les modifications de mon application principale soient automatiquement répercutées sur le widget. Comment puis-je obtenir cette actualisation? Existe-t-il un moyen d'appeler le widget depuis mon activité (est-ce que je fais juste une routine statique) ou est-ce que je peux forcer mon onUpdate à être appelé chaque fois que le téléphone revient à l'écran d'accueil?

+0

Ne présumez pas votre widget sera sur l'écran d'accueil. –

Répondre

3

Avez-vous implémenté votre widget en utilisant un service pour mettre à jour les RemoteViews? Si oui, vous pouvez lancer ce service avec une intention et le widget sera mis à jour.

Intent widgetUpdateIntent = new Intent(context, MyClassName.UpdateService.class); 
context.startService(widgetUpdateIntent); 
+1

Je ne suis pas sûr de savoir comment configurer un service dans le widget pour gérer les vues distantes. Y a-t-il un exemple que vous pouvez me signaler? – Chris

+0

N'est-il pas possible que mon activité d'application envoie un événement au widget pour actualisation? – Chris

+0

Enfin obtenu, vous vouliez dire avoir un service mettre à jour le widget, puis je peux appeler le service de n'importe où. Est-ce que cela - fonctionne un régal, merci! – Chris

1
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); 
alarmManager//.setRepeating(AlarmManager.RTC_WAKEUP, 500, 2, pendingIntent1); 
.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, 500, pendingIntent1);