現在我真的很沮喪。HANDLER是不是有一個自己的主題?
我想做一個套接字連接,但我總是得到NetworkOnMainThread異常。
我的目標是創建具有螺紋,插座和Messenger模型comunicate僅使用該對象,像這樣的對象:
WebBridge wb = new WebBridge();
wb.Send("My data to send", myLocalMessengerForAnswer);
我試圖用一個處理器具有相同的結果。我也試過這個,用自己的Handler創建自己的線程,但沒有成功。
不是處理程序被拋棄有自己的線程嗎?如果我應該在處理程序的線程中,爲什麼會收到NetworkInMainThread異常?
在此先感謝。
public class WebBridge {
private class WebBridgeThread extends Thread {
static final int STARTUP = 1;
public Handler handler;
Socket socket;
public WebBridgeThread() {
super("WebBridgeThread");
}
@Override
public void run() {
Looper.prepare();
handler = new Handler() {
@Override
public void dispatchMessage(Message msg) {
// TODO Auto-generated method stub
super.dispatchMessage(msg);
switch(msg.what) {
case STARTUP:
try {
socket = new Socket("192.168.100.99",1234);
int fer = 5;
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
break;
}
}
};
Looper.loop();
}
}
public WebBridge(Context paramContext) {
WebBridgeThread wbt = new WebBridgeThread();
wbt.start();
Message msg = new Message();
msg.what = WebBridgeThread.STARTUP;
wbt.handler.dispatchMessage(msg);
}
dispatchMessage vs sendMessage ... – Selvin