마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

로직 관련 질문 하나만 드릴게요.

0 추천

안녕하세요.

안드로이드 앱 개발중인데 좀 난해한 로직이 있어서 질문드립니다.

1..2..3..4..5..<DATA1>~<DATAn>..1..2..3..4..5..<DATA1>~<DATAn>..1..2..3..4..5..<DATA1>~<DATAn>..1..2..3..4..5

이런식으로 5초마다 데이터가 들어옵니다.

이 때, receiveData(JSONObject jsonObject) { .. } 함수가 <DATAn>까지 n번 호출이 되는데요.

대략 1초에서 1.5초안에 다 들어옵니다.

 

여기서 제가 타이밍을 잡고 싶은게 <DATA1> 이 들어올 때를 캐치하고 싶은겁니다.

데이터는 5초마다 들어오고, 약 1.5초안에 다 들어오는데 데이터의 끝을 알 수 없기 때문에

단순히 데이터가 들어오면 true, 안들어오면 false 라는 플래그 방식도 어렵습니다.

<DATA1> 부터 <DATAn> 까지의 데이터를 모아서 가공처리해야 합니다.

(데이터의 끝을 모르니 false를 붙이기가 난해한 실정입니다.)

 

일단, 데이터가 들어온 후에 가공 및 UI 처리하고 다시 잠시 대기하였다가 5초가 지나면 다시 데이터가

들어오는데, 데이터의 가공 및 UI 처리등이 끝난 후에도 다음 데이터가 들어올 때까지 데이터는

유지되어야 합니다.

 

어떻게 해야 할까요?

 

데이터는 웹소켓으로 수신만 하고 있고 서버측에서 5초 타이머가 돌아가면서 데이터를 보내주고 있습니다.

데이터가 들어오면 기존의 데이터는 삭제하고 새로 받은 데이터를 적재하여 사용해야 하는 문제입니다.

케이엔비 (660 포인트) 님이 2016년 1월 27일 질문
데이터가 들어온 후에 가공 및 UI 처리하고

다시 잠시 대기하였다가 5초가 지나면 다시 데이터가 들어오는데,

데이터의 가공 및 UI 처리등이 끝난 후에도

다음 데이터가 들어올 때까지 데이터는 유지되어야 합니다.

라고 하셨는데 마지막줄에

"데이터가 들어오면 기존의 데이터는 삭제하고 새로 받은 데이터를 적재하여 사용해야 하는 문제입니다."

라는부분이 이해가 되지 않습니다. 데이터는 유지 해야 하는데.. 기존 데이터는 삭제하고 새로 받은 데이터를 적용 한다는게.. 무슨말씀이신지..
5초에 한 번 들어오는 데이터로 UI 처리를 합니다. 이 때 들어온 데이터를 적재해놓고 있어야 화면 터치시 해당 데이터를 표시할 수 있는거구요. 다시 5초후에 데이터가 들어오면 기존 데이터는 삭제하고 새로 들어오는 데이터를 적재하여 화면이 새 데이터로 refresh 되어야 하는 것을 말씀드린거에요.

그러니까, 데이터를 계속 누적시키는 것이 아니라 5초가 지나면 항상 새 데이터를 가지고 있어야 한다는 이야기지요. UI 처리후 사용자는 다음 데이터를 받기 전까지는 화면에서 현재 데이터를 볼 수 있어야 하는거구요.
1..2..3..4..5.. 가 5초를 센것이었군요 ㄷㄷ
데이터를 json 형태로 준다면 string 형태로 변환해서 계속 append 해서 데이터를 보관하고 있다가 일정 시간동안 데이터를 더이상 받는것이 없다면
데이터 유효성 검사 후 해당 string을 json으로 변경 후 원하는 데이터로 처리하면 되지 않을까 싶습니다만..
다시 값을 받을 경우에는 새로운 값에 받은 후 교체 하면 되겠지요
제가 이해한것이 맞을지 모르겠습니다

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...