Сеть Android - это исключение из основного потока - PullRequest
0 голосов
/ 29 февраля 2012

Я работаю над приложением для Android, которое предполагает подключение к серверу.Я получаю исключения из сети, даже когда создаю сокет в новом потоке (и использую Async Task)Сокет работает нормально из обычной Java-программы, IP-адрес находится в локальной сети, и pinging работает нормально.Телефон Nexus Galaxy, Android версии 4.0.2

package uk.ac.cam.echo.app;

import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;

import android.os.AsyncTask;


public class DBTask extends AsyncTask<Void,Void,Void>{

    protected Void doInBackground(Void... params) {
        try {
            Socket s = new Socket("192.168.15.98",44444);
        } catch (UnknownHostException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
}

1 Ответ

0 голосов
/ 29 февраля 2012

Попробуйте выйти из системы android.os.Process.myTid() из того места, где вызывается AsyncTask, и изнутри doInBackground. Если они одинаковые, то ваша AsyncTask фактически не перемещается в пул потоков.

Можете ли вы предоставить код, где вы также активируете AsyncTask?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...