09.02.2017 Views

creez-des-applications-pour-android

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

4.2 La communication entre composants<br />

on appuie sur le bouton ||Retour||, on revient à la lecture du SMS. En revanche, avec cet attribut,<br />

l’activité lancée sera liée à la tâche du navigateur et non plus du client SMS.<br />

La valeur par défaut est false.<br />

4.2.5.1.3 <strong>android</strong> :launchMode Définit comment l’application devra être lancée dans une<br />

tâche. Il existe deux mo<strong>des</strong> : soit l’activité peut être instanciée plusieurs fois dans la même tâche,<br />

soit elle est toujours présente de manière unique.<br />

Dans le premier mode, il existe deux valeurs possibles :<br />

— standard est le mode par défaut, dès qu’on lance une activité une nouvelle instance est<br />

créée dans la tâche. Les différentes instances peuvent aussi appartenir à plusieurs tâches.<br />

— Avec singleTop, si une instance de l’activité existe déjà au sommet de la tâche actuelle,<br />

alors le système redirigera l’intent vers cette instance au lieu de créer une nouvelle<br />

instance. Le retour dans l’activité se fera à travers la méthode de callback void<br />

onNewIntent(Intent intent).<br />

Le second mode n’est pas recommandé et doit être utilisé uniquement dans <strong>des</strong> cas précis. Surtout,<br />

on ne l’utilise que si l’activité est celle de lancement de l’application. Il peut prendre deux<br />

valeurs :<br />

— Avec singleTask, le système crée l’activité à la racine d’une nouvelle tâche. Cependant,<br />

si une instance de l’activité existe déjà, alors on ouvrira plutôt cette instance-là.<br />

— Enfin avec singleInstance, à chaque fois on crée une nouvelle tâche dont l’activité sera<br />

la racine.<br />

4.2.5.1.4 <strong>android</strong> :clearTaskOnLaunch Est-ce que toutes les activités doivent être enlevées<br />

de la tâche — à l’exception de la racine — quand on relance la tâche depuis l’écran de démarrage<br />

? Ainsi, dès que l’utilisateur relance l’application, il retournera à l’activité d’accueil, sinon il<br />

retournera dans la dernière activité qu’il consultait.<br />

La valeur par défaut est false.<br />

4.2.5.1.5 <strong>android</strong> :alwaysRetainTaskState Est-ce que l’état de la tâche dans laquelle se<br />

trouve l’activité — et dont elle est la racine — doit être maintenu par le système ?<br />

Typiquement, une tâche est détruite si elle n’est pas active et que l’utilisateur ne la consulte pas<br />

pendant un certain temps. Cependant, dans certains cas, comme dans le cas d’un navigateur web<br />

avec <strong>des</strong> onglets, l’utilisateur sera bien content de récupérer les onglets qui étaient ouverts.<br />

La valeur par défaut est false.<br />

4.2.5.1.6 <strong>android</strong> :finishOnTaskLaunch Est-ce que, s’il existe déjà une instance de cette<br />

activité, il faut la fermer dès qu’une nouvelle instance est demandée ?<br />

La valeur par défaut est false.<br />

4.2.5.2 Avec les intents<br />

Il est aussi possible de modifier l’association par défaut d’une activité à une tâche à l’aide <strong>des</strong><br />

flags contenus dans les intents. On peut rajouter un flag à un intent avec la méthode Intent<br />

271

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!