J'ai une question technique qui me semble ardue, je tiens à préciser que je suis un débutant en programmation Android.

Je construis une application sur Android qui permet à un utilisateur de s'enregistrer à l'aide d'une paire identifiant/mot de passe.
L'application soumet les paramètres entrés par l'utilisateur à un service web qui se charge de communiquer avec un serveur de base de données.

A chaque enregistrement d'un nouvel utilisateur, l'application transmet la paire identifiant/mot de passe au service web qui insère une ligne correspondante dans une table dédiée. Dans cette table, il existe une colonne qui est de type booléen et qui traduit le fait que l'utilisateur est connecté.

L'utilisateur une fois enregistré peut se déconnecter. Cette action appelle le service web qui met à jour dans la table la valeur de la colonne booléenne traduisant le fait que l'utilisateur est déconnecté.

Cette petite mécanique est utile pour connaître la date d’enregistrement des nouveaux utilisateurs, la date de dernières connexion, le fait qu'ils soient en ligne. Cela permet aussi d'empêcher que N personnes puissent se connecter en même temps avec la même paire identifiant/mot de passe. En fait lorsqu’un utilisateur est connecté (booléen à 1), personne ne peut plus se connecter avec la la paire identifiant/mot de passe correspondante.

Jusqu'ici, j'ai utilisé la classe AsyncTask pour effectuer les appels au service web avec une grand efficacité.

Cependant, Android étant un système embarqué, il y a des cas de figure que je me dois de considérer comme par exemple une sortie expéditive de l'application par "swiping".

J'ai trouvé un article intéressant : https://github.com/iammert/RadioPlay...d-when-swiping

J'ai donc suivit les instructions et en débuggant avec un vulgaire println(), j'arrive à détecter cette sortie intempestive dans la méthode onTaskRemoved.

Le problème qui est le mien est d'arriver à appeler mon service web à l'intérieur de cette méthode pour notifier la déconnexion de l'utilisateur.

J'ai essayé AsyncTask mais cela ne fonctionne pas : pas d'exception mais pas d’exécution.

J'ai essayé l'appel direct : une belle exception (javax.ws.rs.ProcessingException: Cannot set request property after connection is made).

Je suis à court d'idée.

Merci de toute l'aide que vous pourrez ma prodiguer.

Cordialement.