私はサーバーに接続することを含むアンドロイドアプリに取り組んでいます。私は新しいスレッドでソケットを作成して(そして非同期タスクを使用して)、ネットワークのメインスレッドの例外を取得しています。 ソケットは正常なJavaプログラムから正常に動作し、IPはローカルネットワーク上にあり、pingは正常に動作します。 電話がネクサス銀河で、Androidのバージョン4.0.2Androidネットワークnonmainメインスレッド以外からの例外の読み取り
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;
}
}
共有非同期タスクコード – Blackbelt
どのように 'doInBackground'を呼びますか?あなたはまだメインのアプリケーションスレッドから呼び出すように聞こえます。例えば'task =新しいDBTask(); task.doInBackground(); '。 –