Formation programmation Android, tutoriel & guide de travaux pratiques en pdf.
Méthodes de call-back d’une activité
On a déjà vu que le changement d’état d’une activité provoque le déclenchement de la méthode de call-back correspondante.
Il est indispensable d’implémenter les méthodes suivantes sous peine de comportement instable
En particulier lorsque l’application est constituée de plusieurs activités
onCreate(…): alloue les ressources
onStop() : sauvegarde si nécessaire
onDestroy() : désalloue les ressources
Attention à toujours créer ces méthodes, et à appeler la méthode correspondante sur super
Dans onStop(), appel à super.stop()
Multi-tâches
Plusieurs piles d’activités peuvent co-exister avec Android
L’utilisateur passe de l’une à l’autre
Démarrer une activité
Pour pouvoir être lancée, toute activité doit être préalablement déclarée dans le manifeste
Une activité est désignée comme activité initiale de l’application
Ceci est indiqué dans le fichier AndroidManifest.xml
Lancer une activité
Méthode startActivity(…)
Lancer une activité en vue d’obtenir un résultat en retour
Méthode startActivityForResult(Intent)
Intent
Les Intents permettent de gérer l’envoi et la réception de messages afin de faire coopérer les applications.
Le but des Intents est de déléguer une action à un autre composant, une autre application ou une autre activité de l’application courante.
Classification des Intent
Intent explicite : indique l’identifiant du composant destinataire
Intent implicite : indique le type d’action demandée et optionnellement l’URI correspondante
URI : Uniform Resource Identifier
Généralise la notion d’URL
Schéma générique = scheme://host:port/path
schemes usuels : http, mailto, tel, mms, geo, file, …
Un objet Intent contient les information suivantes:
le nom du composant ciblé (facultatif)
l’action à réaliser, sous forme de chaine de caractères
les données: contenu MIME et URI
des données supplémentaires sous forme de paires de clef/valeur
une catégorie pour cibler un type d’application
des drapeaux (information supplémentaire)
Intent Explicite
Intent explicite : indique l’identifiant du composant destinataire
Demande la création d’une nouvelle activité en lui passant le nom de la classe en paramètre. Le système démarre une nouvelle instance de la classe
startActivity(this, ActivityTwo.class);
Intent implicite : n’indique pas directement l’identifiant du composant destinataire; indique le type d’action demandée et optionnellement l’URI correspondante
Demande la création d’une activité capable d’effectuer l’action demandée.
Le système cherche une application ayant la capacité à effectuer l’action demandée
Le système démarre une nouvelle instance de la classe
Intent intent=new Intent(ACTION, [uri]); startActivity(intent);
Button b = (Button)findViewById(R.id.Button01); b.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
Uri telnumber = Uri.parse(« tel:0248484000 »);
Intent call = new Intent(Intent.ACTION_DIAL, telnumber);
startActivity(call);
}
Demande l’ouverture d’un service capable de composer un numéro de téléphone et lui passe l’URI correspondant au schema reconnu tel:<numerodetel>
Général
Log
Listeners
Démarrer une activité
Intent
startActivity, startActivityForResult
Inlterface graphiques avancées
ListView
Menu
Programmation réseau
WebView
Socket
