我一直试图让它工作一段时间。我正在尝试将手机上的信息发送到笔记本电脑上的简单服务器。我一直在获取NetworkOnMainThreadException,我已经尝试创建一个新线程(新的Runnable()等和ASynchTask但我仍然得到错误,应用程序正在强行关闭。我已经阅读了类似于3或4的问题这个,但没有一个对我有用。这是我的代码:
final Button post2 = (Button) findViewById(R.id.postbutton2);
post2.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
new Thread(new Runnable() {
// TODO Auto-generated method stub
@Override
public void run() {
// TODO Auto-generated method stub
message = text.getText().toString(); //Message is a string, text is an EditText.
text.setText("");
try {
clientSocket = new Socket("10.0.0.2", 4445);
printWriter = new PrintWriter(clientSocket
.getOutputStream(), true);
printWriter.write(message);
printWriter.flush();
printWriter.close();
clientSocket.close();
} catch (UnknownHostException e) {
e.printStackTrace();
Toast.makeText(context, e.toString(),
Toast.LENGTH_SHORT).show();
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(context, e.toString(),
Toast.LENGTH_SHORT).show();
}
}
}).start();
}
});
答案 0 :(得分:2)
尝试从代码中删除以下部分。
message = text.getText().toString(); //Message is a string, text is an EditText.
text.setText("");
在这个帖子中这样做是不正确的。
答案 1 :(得分:0)
您必须YourActivity.this.runOnUiThread(new Runnable() { public void run() { /* show your toast here */ });