47 lines
2.7 KiB
Markdown
47 lines
2.7 KiB
Markdown
## Mettre en pause les traitements consommateurs lorsque l'application est en arrière-plan
|
|
|
|
### Identifiants
|
|
|
|
// TODO
|
|
|
|
### Catégories
|
|
|
|
| Cycle de vie | Tiers | Responsable |
|
|
|:---------:|:----:|:------------------------:|
|
|
| 2. Conception | Utilisateur/Terminal | Developpeur/Développeuse |
|
|
|
|
### Indications
|
|
|
|
| Degré de priorité | Mise en oeuvre | Impact écologique |
|
|
|:-------------------:|:-------------------------:|:---------------------:|
|
|
| 3 | 4 | 3 |
|
|
|
|
| Ressources Economisées |
|
|
|:----------------------:|
|
|
| Mémoire / Batterie |
|
|
|
|
### Description
|
|
|
|
Lorsqu'une personne navigue entre plusieurs applications sur son mobile, ces applications basculent entre premier plan et arrière-plan. Lorsqu'une application qui effectue un traitement consommateur en mémoire passe en arrière-plan, il convient de s'appuyer sur son cycle de vie pour réduire l'impact de ce traitement sur la batterie du téléphone.
|
|
* Dans la fonction `onPause`, l'activité est toujours visible à l'écran, mais l'utilisateur ne peut plus interagir avec.
|
|
- Dans la fonction `onStop`, l'activité n'est plus visible.
|
|
|
|
Au sein de ses deux callbacks, une bonne pratique est de libérer ou d'ajuster les ressources consommatrices initialisées précédemment.
|
|
|
|
Quelques exemples de traitements consommateurs :
|
|
* L'affichage d'une animation.
|
|
* La lecture d'une vidéo ou d'un son.
|
|
* L'usage des capteurs du téléphone : le GPS, le gyroscope.
|
|
* L'usage de protocol de connectivité : Bluetooth, Wifi, NFC, etc.
|
|
|
|
### Exemple
|
|
* Soit une application utilisant la position GPS du téléphone. Lorsque l'activité n'est plus visible, il faut désactiver la mise à jour de la position dans la fonction `onStop`. Si cela n'est pas possible, une alternative est de changer la granularité de mise à jour de la position de "fine" à "grossière".
|
|
* Soit une activité `PhotoActivity` qui utilise l'appareil photo. Lorsqu'une autre activité prend le focus sur celle-ci par exemple sous forme de modale, mais que la première activité restent visible dessous (elle est donc dans l'état `PAUSED`), il faut appeler la fonction `camera?.release()` dans la callback `onPause`.
|
|
|
|
### Principe de validation
|
|
|
|
| Le nombre ... | est inférieur ou égal à |
|
|
|----------------------------------------------------------------------------------------------------------------------------------------------------------------|:-------------------------:|
|
|
| de traitement lourds pour lesquels la mémoire n'est pas libéré dans les fonctions `onPause` ou `onStop` | 0% |
|
|
|