Profete162 Posted April 6, 2010 Share Posted April 6, 2010 Salut à tous, J'ai une petite colle qui me bloque depuis 2 jours. Je me suis bien donné dans la programmation de widgets, et j'ai un petit soucis. Cela concerne l'actualisation du widget. En effet quand je suis dans un activité de mon application, je me suis fait un petit bouton qui me lance un broadcast, qui est percu par le widget: Intent intent = new Intent( MaClasse.PROFETE162_WIDGET_UPDATE); sendBroadcast(intent); Maintenant, le soucis est le suivant: J'aimerais transposer mon bouton dans le widget pour créer un petit bouton "refresh widget". Et c'est là que je coince. En effet, dans le widget, le seul truc que j'ai compris qui obéit à un clic, c'est le views.setOnClickPendingIntent(id,pendingIntent) Je ne vois vraiment pas la relation entre un pendingIntent et mon Broadcast... Merci à vous pour toutes infos sur le rafraichissement de Widget. Link to comment Share on other sites More sharing options...
Nivek Posted April 6, 2010 Share Posted April 6, 2010 Poourquoi un broadcast ? Link to comment Share on other sites More sharing options...
Profete162 Posted April 6, 2010 Author Share Posted April 6, 2010 Poourquoi un broadcast ? Parceque j'y comprends pas grand chose et c'est le seul truc que j'ai trouvé qui fonctionne. Si tu as mieux, je suis preneur! Link to comment Share on other sites More sharing options...
Nivek Posted April 6, 2010 Share Posted April 6, 2010 J'ai un widget en cours sur une autre appli pas encore finalisé... je jetterai un oeil ce soir si je ne m'endors pas avec les petits... :P Link to comment Share on other sites More sharing options...
Nivek Posted April 13, 2010 Share Posted April 13, 2010 Bon, je viens de me rafraichir la mémoire sur les widgets... Donc en théorie si tu veux que ton bouton déclenche l'envoi de ton Broadcast spécifique, tu vas devoir faire un truc du genre : Intent i = new Intent(MaClasse.PROFETE162_WIDGET_UPDATE); PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, i, 0); views.setOnClickPendingIntent(id, pendingIntent) Là j'ai remis le nez dans le widget que j'avais commencé, mais dont la mise à jour est basé sur le lancement d'un service... mais j'ai également prévu un bouton de refresh qui pour l'instant n'est pas au point. Donc bon... ca vaut ce que ca vaut ;-) Link to comment Share on other sites More sharing options...
Profete162 Posted April 14, 2010 Author Share Posted April 14, 2010 Merci. En fait, écrire tout en une fois, ca revient au même que de rajouter une Action? J'avais trouvé ceci en attendant: intent = new Intent(context, MonAppWidgetProvider.class); intent.setAction("Update"); pendingIntent = PendingIntent.getBroadcast(context,0, intent,0); views.setOnClickPendingIntent(R.id.montrain, pendingIntent); et ensuite dans le receive: public void onReceive(Context context, Intent intent) { super.onReceive(context, intent); final String action = intent.getAction(); if( action.contentEquals("Update")) { (blabla..) Voilà, j'espère que ca pourra aider, ca permet alors de faire toutes les actions que l'on veut. Link to comment Share on other sites More sharing options...
Nivek Posted April 14, 2010 Share Posted April 14, 2010 Je pense que ta nouvelle implémentation est meilleure car elle s'adresse directement à ta classe. Si on ne fait que définir une action "custom" qu'on broadcast au hasard, le système va certainement passer un poil plus de temps pour trouver l'ensemble des receivers intéressés par cette action pour leur transmettre. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.