我有一个从服务器到客户端的对象流。客户端中有一个处理这些对象的网络类。然后有一个活动使用get方法获取此对象,因为它从服务器更新(两个客户端类都在不断更新)对象中还有一个位置字段,用于确定它们是1(第一个),2(当前数据流的中间)或3(结束)。
我的问题是使用LogCat来打印这些,我在网络类中得到第一个位置为1的对象,但是活动错过了这个,并显示了几个2和一个3.所以它以某种方式丢失了我的第一个对象。 / p>
我的客户网络具有以下相关代码:
public class ClientNetwork implements Runnable {
Drawring serverDraw;
public Drawring GetServerDraw(){
Drawring drawPass = serverDraw;
return drawPass;
}
public void resetpos(){
serverDraw = null;
}
在public void run()
中 while(true){
while(true){
serverDraw =(com.DrawTastic.Drawring) ois.readObject();
test.add(serverDraw);
}
}
ClientActivity循环:
try{
Drawring fromNet = net.GetServerDraw();
net.resetpos();
int position = fromNet.getPos();
switch (position) {
case 1:
try {
Log.d(null, "1st Position");
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
break;
case 2:
try {
Log.d(null, "2nd Position");
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
break;
case 3:
try {
Log.d(null, "3rd Position");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
break;
}
}
catch(Exception e)
{
Log.d(null, e.toString());
}