Bonjour,

J'ai écrit une appli qui permet de passer des commandes, en tant que "client", via socket TCP/IP à une autre appli (le serveur) qui tourne sur un PC.
Cette appli prend la forme d'un clavier avec des touches particulières, dédiées aux commandes à envoyer.

La première chose à faire est évidemment d'établir la connexion TCP/IP, en appuyant que un bouton "CONNECT".
Lorsque la connexion est établie ce bouton prend l'inscription "DISCONNECT".

Jusque là OK.

Maintenant, lorsque j'appuie sur l'icône "retour" du portable ou de la tablette, l'appli passe en arrière-plan.
Et lorsque que je réactive l'appli en cliquant dessus (depuis le "pool" d'applis en arrière-plan), mon bouton CONNECT/DISCONNECT est repassé en mode "CONNECT", bien que je réactualise son état en fonction d'une variable qui mémorise l'état de connexion, dans la méthode onStart(), qui est rappelée lors de la restitution en avant-plan.

Autrement dit, tout se comporte comme si les variables étaient réinitialisées, alors qu'apparemment, le socket TCP/IP fonctionne toujours correctement.

Désolé: pas très commode à expliquer.
Quelqu'un peut m'indiquer ce que je rate ?

Et surtout, la grosse question: est-ce qu'une appli mise en arrière-plan conserve l'état de ses variables, ou non?

Je soupçonne que la solution tourne autour de onSaveInstanceState(), mais, habitué aux environnements d'OS classiques, je trouve ça très déroutant.
Un exemple simple serait bienvenu.

Merci d'avance.

Jean-Pierre