Java 如何成功退出该计划
今天我写了一个程序。它工作成功,几乎完成了。但是我发现当我关闭Java 如何成功退出该计划,java,android,sockets,bufferedreader,printwriter,Java,Android,Sockets,Bufferedreader,Printwriter,今天我写了一个程序。它工作成功,几乎完成了。但是我发现当我关闭套接字,缓冲阅读器和打印编辑器,程序总是显示ANR。我对此感到困惑。是否有关闭程序的顺序 @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub try { mPrintWriter.print
套接字
,缓冲阅读器
和打印编辑器
,程序总是显示ANR。我对此感到困惑。是否有关闭程序的顺序
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
try {
mPrintWriter.println("192.168.2.131;"+mSocket.getLocalAddress().toString().replace("/", "")+";byebye");
mPrintWriter.close();
mBufferedReader.close();
mSocket.close();
net_.interrupt(); //This is the thread to send and receive data.
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
这是我的问题,我想消除这个bug以保持程序的完美。谢谢阅读
也许可以试试这样的
@Override
public void onClick(DialogInterface dialog, int which) {
thread = new Thread(new Runnable() {
@Override
public void run() {
try {
mPrintWriter.println("192.168.2.131;"+mSocket.getLocalAddress().toString().replace("/", "")+";byebye");
} catch (IOException e) {
e.printStackTrace();
} finally{
mPrintWriter.close();
mBufferedReader.close();
}
try{
net_.interrupt();
}catch (IOException e) {
e.printStackTrace();
}finally{
mSocket.close();
}
}
});
thread .start();
}
在你的应用程序结束时,你应该加入该线程
thread.join();
它成功了。非常感谢D