AppWidget

 

Le développement des app widgets

Les AppWidgets sont des petites applications affichées sous forme de widgets (objets) que l'on dépose sur l'écran d'accueil. Elles vont généralement afficher des informations à l'utilisateurs (juste l'essentielles).

Les appwidgets doivent rester simples et ne pas consommer trop de ressources de la machine (donc pas de maj trop fréquentes des données à afficher, et ne surtout pas refaire dans un appwidget ce que l'on peut faire dans une application standard). De plus, comme elles sont posées sur l'écran, elles vont occupées de la place. Cette place occupée devra être la plus petite possible, n'oubliez pas que vous n'êtes pas seule !

Les app widgets sont des applications qui vont tourner hors du processus de votre application.

Image non trouvée !Ne pas confondre les app Widgets (que l'on pose sur l'écran d'accueil) avec les widgets que l'on pose dans les applications (comme les boutons, textview, ...).

 

C'est quoi une AppWidget

Les appWidgets que vous allez développer étendent l'AppWidgetProvider qui lui même étand un broadcastreceiver. La manière de programmer une AppWidget est donc complétement différente de la phylosophie vue jusqu'à présent:

  • Une appWidget n'est donc pas une activité, et n'a donc pas un cycle de vie correspondant !
  • Elle va réagir à des intent.
  • Les opérations graphiques vont être particulières. L'appWidget Manager va mettre à jour le contenu de chacuns des appWidget. Vous indiquez dans des remoteViews ce que vous voulez modifier. Vous ne mettrez donc jamais à jour directements les widgets d'un appWidget, mais passerez systématiquement par l'appWidget Manager.
  • Plusieurs instances d'un AppWidget peuvent exister, puisque l'utilisateur peut en installer autant qu'il le veut sur l'écran.

Les chapitres abordés

Voici les chapitres abordés:

- Les bases de l'AppWidget

Les premiers fichiers XML
Définir le layout
L'aspect des app widgets
Du code JAVA (enfin !)

- Les différentes intents/méthodes pour un appWidget

- Maj le contenu des appWidgets

AppWidget Manager
Les remotesViews
Les listeners dans les appWidgets

- Aspect des appWidgets

Quelques principes...
Ergo. de l'AppWidget
Annexes

- Risques d'ANR

ANR sur AppWidget
Alors comment faire pour éviter cela ?

- Lancer des maj périodiques ou non

L'attribut updatePeriodMillis
Raffraichissement par intent
Raffraichissement périodique par Alarme