在我的应用程序中有一个
TCP客户端
在开始时,它向服务器请求一个
,目前它工作正常,但问题是当我必须再次打开连接并询问时
数字
之前已发送以获取其他数据。我的意思是我在试着做一个循环
乘以服务器上的数据,并将其放入RecyclerView。适配器,但目前for循环在无限循环中进行,之后不停止
十、
实例
因此,如果我正在启动我的应用程序,并且它从服务器上显示5号,我会在收到它后向服务器询问第一个数字的详细信息,我会询问第二个数字的详细信息和co。
十、
public static class ConnectTask extends AsyncTask<String, String, Client> {
@Override
protected Client doInBackground(String... message) {
client = new Client(new Client.OnMessageReceived() {
@Override
public void messageReceived(String message) {
publishProgress(message);
}
});
client.run();
return null;
}
@Override
protected void onProgressUpdate(String... values) {
super.onProgressUpdate(values);
if(MainActivity.active){
msgServer.setTextColor(Color.parseColor("#00FF00"));
msgServer.setText("ONLINE");
SelfNumber = values[0];
}
if(help.active){
for(int i=0; i< Integer.valueOf(SelfNumber); i++){
StringTokenizer stringTokenizer = new StringTokenizer(String.valueOf(values[0]),"#");
status = stringTokenizer.nextToken();
receipt = stringTokenizer.nextToken();
eur = stringTokenizer.nextToken();
help.adapter = new SelfAdapter(("CASSA SELF N°" + Integer.toString(i+1)),"EUR: " + eur,"SC: " + receipt,help.img);
help.selfList.add(help.adapter);
help.adapterView.notifyDataSetChanged();
startConnection.removeCallbacks(runnableConnection);
startConnection.postDelayed(runnableConnection,100);
startCashMessage.removeCallbacks(runnableCashMessage);
startCashMessage.postDelayed(runnableCashMessage,250);
}
}
}
}
static Handler startConnection = new Handler();
static Runnable runnableConnection = new Runnable() {
@Override
public void run() {
new ConnectTask().execute("");
}
};
static Handler startCashMessage = new Handler();
static Runnable runnableCashMessage = new Runnable() {
@Override
public void run() {
if (help.active) {
final Cursor cursor = myDB.fetchData();
if (cursor.moveToFirst()) {
do {
Client.SERVER_IP = cursor.getString(1);
} while (cursor.moveToNext());
}
if (client != null) {
client.sendMessage("RICEVO DATI CASSA 1");
}
}
}
};