У меня есть поток объектов, поступающих с сервера на клиент.Внутри клиента есть сетевой класс, который обрабатывает получение этих объектов.Затем существует действие, которое использует метод get для получения этого объекта, когда он обновляется с сервера (оба клиентских класса постоянно обновляются), у объектов также есть поле позиции внутри них, которое определяет, являются ли они 1 (первым), 2 (середина) или 3 (конец) текущего потока данных.
Моя проблема в том, что, используя LogCat для их печати, я получаю первый объект с позицией 1 в сетевом классе, но действие пропускает это и отображает несколько 2 и один 3. Так что это как-то теряет мой первыйobject.
Моя клиентская сеть имеет следующий соответствующий код:
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());
}