Академический Документы
Профессиональный Документы
Культура Документы
Intent et Service
Rmi Forax
Discussion inter-activit
Problme rsoudre
Sparation forte entre chaque application
1 application / 1 processus
Intent
Message de communication de haut niveau dfinie dans l'API Java
pour communiquer une action d'un composant (activit, service, etc)
vers un autre
Types de transmission d'Intent
Action raliser
Donne sur laquelle raliser l'action sous forme d'URI (setData()) ou d'un
type MIME (setType())
putExtra(String key,value)
Intent Filter
Dfinie dans le AndroidManifest.xml dans la balise
<activity>
Nom de l'action
<action android:name=XXX/>
Category
<category android:name=XXX/>
Android.intent.category.[DEFAULT|BROWSABLE|TAB|
ALTERNATIVE|LAUNCHER|HOME|PREFERENCE|TEST]
Type MIME
<category android:mimeType=XXX/>
Exemples
Le classique mon activit dclare une application
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
Service
Service
Un service est tu par le systme si pnurie
de ressources (trops de processus, pas assez
de mmoire)
Service
Deux modes d'utilisations
1.Sousmission de travaux asynchrone par un Intent
IBInder onBind()/onRebind()
Cycle de vie
1. Ragir un Intent
On demande une raction un Intent en appelant
Context.startService(Intent)
Appel onStartCommand(Intent,flags,startId)
2. Connexion un Service
Un composant appelle
Context.bindService(intent,serviceConnection,flags) pour
se lier (bind) un service
onServiceConnected(ComponentName,IBinder)
onServiceDisconnected(ComponentName)
flags:
BIND_AUTO_CREATE (dmarre le service si ncessaire),
BIND_ADJUST_WITH_ACTIVITY(monte la priorit au mme niveau
que l'activit), BIND_WAIVE_PRIORITY (pas de changement de
priorit)
Le Messenger
Service inter-processus
Android Interface Definition Language (AIDL)
Langage de dfinition (IDL) pour les appel interprocessus
Service en avant-plan
Il est possible de metre un Service en avantplan
Notifications
Zone centralise d'affichage d'informations pour l'utilisateur
3 formats
context.getSystemService(Context.NOTIFICATION_SERVICE)
NotificationCompat.Builder.build()
Obtenir le NotificationManager
Services Systmes