36 votes

Lequel utiliser : onSaveInstanceState ou onRetainNonConfigurationInstance ?

D'après ce que je peux voir, onRetainNonConfigurationInstance est un rappel redondant. Si mon activité a une initialisation vraiment coûteuse, il vaut mieux que j'utilise onSaveInstanceState. L'instance sauvegardée couvre plus de situations que l'instance non-configurée. Existe-t-il une ligne directrice pour l'utilisation d'une API par rapport à l'autre ? Merci.

48voto

CommonsWare Points 402670

D'après ce que je vois, onRetainNonConfigurationInstance est un rappel redondant.

Non, ce n'est pas le cas.

Si mon activité a une initialisation très coûteuse, il vaut mieux que j'utilise onSaveInstanceState.

onSaveInstanceState() n'est pas conçu pour une "initialisation vraiment coûteuse". Il est conçu pour "hé, l'utilisateur a apporté des modifications aux informations de l'activité mais ne les a pas encore sauvegardées, ne perdons pas ces données, m'voyez ?".

Existe-t-il une ligne directrice pour l'utilisation d'une API par rapport à l'autre ?

S'il tient dans un Bundle et n'est pas trop grande, utilisez onSaveInstanceState() . Tout ce qui ne rentre pas dans un Bundle (par exemple, une prise de courant) ou est très grand (par exemple, une photo en tant qu'un Bitmap ) devrait utiliser onRetainNonConfigurationInstance() et votre application devrait être en mesure de recréer ces éléments si nécessaire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X