Android客户端-Java服务器,客户端不';如果订单为';我做得不对
我的应用程序使用服务器-客户端系统时出现问题。 由于我是初学者,无法从Android开发手册中获得一些有用的信息,因此我使用了本教程: http: //www.myandroidsolutions.com/2012/07/20/android-tcp-connection-tutorial/。我对此进行了改革,因为我不需要将字符串从服务器发送到客户端。但是我遇到了一个问题,那就是我需要保持“连接顺序”。现在我想知道,如果没有与服务器(基于Android应用程序)的连接,如何编写一个任务,该任务一直在后台运行 这是我尝试过的代码,但不起作用:Android客户端-Java服务器,客户端不';如果订单为';我做得不对,java,android,server,client,Java,Android,Server,Client,我的应用程序使用服务器-客户端系统时出现问题。 由于我是初学者,无法从Android开发手册中获得一些有用的信息,因此我使用了本教程: http: //www.myandroidsolutions.com/2012/07/20/android-tcp-connection-tutorial/。我对此进行了改革,因为我不需要将字符串从服务器发送到客户端。但是我遇到了一个问题,那就是我需要保持“连接顺序”。现在我想知道,如果没有与服务器(基于Android应用程序)的连接,如何编写一个任务,该任务一
public void checkConnection() {
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(10000);
do {
handler.post(new Runnable() {
@Override
public void run() {
try {
socket = new Socket("192.168.178.52", 9090);
Toast.makeText(MainActivity.this, "not connected yet", Toast.LENGTH_SHORT).show();
} catch (Exception e) {
Toast.makeText(MainActivity.this, "Error1: " + e, Toast.LENGTH_SHORT).show();
}
}
});
} while (!socket.isConnected());
Thread.sleep(0);
} catch (Exception e) {
Toast.makeText(MainActivity.this, "Error2: " + e, Toast.LENGTH_LONG).show();
}
}
});
}
如果我以正确的顺序启动应用程序(1.服务器,2.客户端),则该应用程序正常工作,如果不正常,则不正常。我也没有得到AsyncTask和接口的部分,这是在做什么??但这不是主题。
下面是我的AsyncTask,它经过了改革:
public class connectTask extends AsyncTask<String,String,TCPClient> {
@Override
protected void onPreExecute() {
super.onPreExecute();
checkConnection();
}
@Override
protected TCPClient doInBackground(String... message) {
mTcpClient = new TCPClient(new TCPClient.OnMessageReceived() {
@Override
public void messageReceived(String message) { // method for receiving the message
publishProgress(message); // method calls the OnProgressUpdate
}
});
mTcpClient.run(); // running the whole Client
return null;
}
}
公共类connectTask扩展了异步任务{
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
检查连接();
}
@凌驾
受保护的TCPClient doInBackground(字符串…消息){
mTcpClient=新的TCPClient(新的TCPClient.OnMessageReceived(){
@凌驾
public void messageReceived(字符串消息){//用于接收消息的方法
publishProgress(message);//方法调用OnProgressUpdate
}
});
mTcpClient.run();//运行整个客户端
返回null;
}
}
事先非常感谢,请原谅我英语不好