private void startMessage() {socket msocket = new socket(mPort);msocket.start();msocket.getHandler().obtainMessage(1).sendToTarget();}private class socket extends Thread {private ServerSocket serverSocket;private Socket _mSocket;private int dstPort;private boolean isloop = true;private Handler _mHandler;private OutputStream outp;private InputStream inp;public socket(int dstPort) {// TODO Auto-generated constructor stubthis.dstPort = dstPort;}public void run() {Looper.prepare();_mHandler = new Handler() {public void handleMessage(Message msg) {switch (msg.what) {case 1:try {serverSocket = new ServerSocket(dstPort);while (isloop) {_mSocket = serverSocket.accept();}} catch (IOException e) {}break;}};Log.d(tag, "???????????????????");Looper.loop();}public Handler getHandler() {return _mHandler;}一直報msocket.getHandler().obtainMessage(1).sendToTarget();這個為null
1 回答

繁花如伊
TA貢獻2012條經(jīng)驗 獲得超12個贊
你是多線程。意思是2個線程都在跑。
你的支線程start了,但是你的主線程還在執(zhí)行,立刻到了msocket.getHandler().obtainMessage(1).sendToTarget();
這個時候,你能保證你的支線程已經(jīng)執(zhí)行了run()【雖然他已經(jīng)start了,但是start了,就代表他執(zhí)行速度超過主線程,完成了run?】,完成了handler的初始化么?
- 1 回答
- 0 關(guān)注
- 236 瀏覽
添加回答
舉報
0/150
提交
取消