Bonne pratique de la connexion TCP Android

Je suis en train de travailler sur une application Android qui nécessite une connexion TCP vers un serveur TCP(Écrit en Node.js)

Mon Android TCP est un peut envoyer des messages d'avant en arrière.

Mon spesific questions est:

  1. Quelle est la meilleure façon de gérer une connexion TCP vers un serveur dans Android ?
  2. Comment maintenir la connexion(fermer la connexion correctement sur onDestroy (), etc) ?
  3. Est-il bether chemin, puis à l'aide d'un AsyncTask(à l'Exception des normal de la classe Thread, ce qui n'est pas autorisé dans Android 4.0)

J'ai ma connexion de socket dans un AsyncTask comme ceci:

@Override
protected Void doInBackground(Void... params) {
        try {
            Log.d("TCP_MESSAGE", "Connecting...");

                socket = new Socket(MY_LOCAL_IP, 8080);
                dataOutput = new DataOutputStream(socket.getOutputStream());

                inputstream = new InputStreamReader(socket.getInputStream());
                input = new BufferedReader(inputstream);


            while (!canceled) {
                String message = input.readLine();
                handleMessage(message);
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    return null;
}

La raison pour laquelle j'ai la connexion dans une AsyncTask est parce que je suis en utilisant android 4.0 et ne sont pas autorisés à utiliser le réseau de code dans un Thread.

source d'informationauteur Emil