Je sais que ma légende de question doit avoir semblé vraiment vague. Mais permettez-moi de le clarifier ici.Combien de temps peut-on passer dans onDestroy() avant que l'activité ne soit détruite?
Dites que j'ai une application android sur une pile middleware. Dans onCreate() de mon activité, j'initialise mes modules middleware.
Dans son onDestroy(), je dois désinitialiser le middleware. Maintenant, mes appels middleware peuvent prendre un certain temps à traiter. Donc, je veux savoir combien de temps la fonction onDestroy() a, et voir si ma désinitialisation peut avoir lieu dans ce délai.
Est-il raisonnable de conserver mon de-init dans onDestroy()?
En outre, supposons que j'initialise le middleware dans onCreate() de l'activité A1. En cliquant sur un bouton, l'activité A1 passe à l'activité A2. Dans des situations de mémoire faible, le LMK va tuer l'activité qui n'a pas été utilisée pendant un certain temps. Dans un tel cas, l'activité A1 ne sera-t-elle pas détruite? Lorsque l'activité A1 est supprimée, toutes les instances que je crée dans A1 sont-elles également désorientées?
Cordialement, kiki
@jhominal: une petite note indiquant quand sauvegarder les données de l'utilisateur. Il faut savoir que 'onSaveInstanceState()' ne sera appelé que si l'application est en train d'être détruite par le système. Il ne sera pas déclenché si l'application se termine en raison de l'utilisateur appuyant sur le bouton de retour, ou 'finish()' étant appelé dans votre code. Donc, si vous voulez être sûr à 100% que vous sauvegardez l'état actuel de l'application, cela devrait être fait dans 'onPause()'. – Nailuj
Et une autre note: quand vous dites 'votre application a (probablement) autant de temps qu'elle le voudrait', ce n'est pas correct. Si votre application disposait de tout le temps voulu, elle pourrait facilement geler tout le système. Donc, la règle des 5 secondes va toujours. – Nailuj
@Nailuj: L'application s'exécute dans son propre processus Linux. S'il commence à consommer trop de ressources dans la méthode 'onDestroy', (l'utilisateur a déjà quitté l'application), le processus sera tué sans cérémonie par le système - mais la condition pour que cela se produise doit être liée à une quantité de consommé ressources plutôt qu'une durée spécifique. –