안드로이드 개발 질문/답변
(글 수 45,052)
일단 제목은 저렇게 써두었지만 제가 하고싶은것은.....
네트워크 요청을 하고 응답이 오기 전 다른 엑티비티로 이동했을때 그 요청을 취소하고 싶은것입니다...
구현 되어있는 것은 URL 형태로 요청을 하면 xml 문서로 응답이 오고 그것을 파싱해서 정보를 얻어내느 방식인데요...
시나리오는 대충 이렇습니다...
리스트에서 마음에 드는 것을 골라 선택해서 엑티비티 전환을 하고 해당 엑티비티의 정보를 요청 했습니다...
네트웍이 지연되어 응답이 늦어지는 것 같아서 취소키를 눌러 뒤로 빽 해서 리스트에서 다른 것을 선택하여
들어갑니다...근데 직전에 선택했던 것의 정보가 뒤늦게 와서 브로드캐스팅 되어 그 정보로 엑티비티를 구성합니다...
이런 경우가 있어서 문제입니다...엑티비티별로는 브로드캐스트 리시버를 등록/해지 하는것으로 어느정도 구분이
됩니다만...네트웍이 느릴때 같은 엑티비티로 전환시 원하지 않은 정보를 리시버에서 받아 버립니다....
좋은 아이디어 없을까요....?
네트웍 요청마다 네트웍 요청 ID값을 부여해 그것으로 구분하는 방법을 구상 해봤으나....
서버에도 작업이 가해져야 해서...일단은 보류 해두고 있습니다...
단말단에서 처리 가능한 아이디어가 있따면...좀 알려주십쇼 ㅠ
네트워크 요청을 하고 응답이 오기 전 다른 엑티비티로 이동했을때 그 요청을 취소하고 싶은것입니다...
구현 되어있는 것은 URL 형태로 요청을 하면 xml 문서로 응답이 오고 그것을 파싱해서 정보를 얻어내느 방식인데요...
시나리오는 대충 이렇습니다...
리스트에서 마음에 드는 것을 골라 선택해서 엑티비티 전환을 하고 해당 엑티비티의 정보를 요청 했습니다...
네트웍이 지연되어 응답이 늦어지는 것 같아서 취소키를 눌러 뒤로 빽 해서 리스트에서 다른 것을 선택하여
들어갑니다...근데 직전에 선택했던 것의 정보가 뒤늦게 와서 브로드캐스팅 되어 그 정보로 엑티비티를 구성합니다...
이런 경우가 있어서 문제입니다...엑티비티별로는 브로드캐스트 리시버를 등록/해지 하는것으로 어느정도 구분이
됩니다만...네트웍이 느릴때 같은 엑티비티로 전환시 원하지 않은 정보를 리시버에서 받아 버립니다....
좋은 아이디어 없을까요....?
네트웍 요청마다 네트웍 요청 ID값을 부여해 그것으로 구분하는 방법을 구상 해봤으나....
서버에도 작업이 가해져야 해서...일단은 보류 해두고 있습니다...
단말단에서 처리 가능한 아이디어가 있따면...좀 알려주십쇼 ㅠ




요청을 할때 구분키 같은것을 만들어서 주면 됩니다. (시간값 같은거랑 적당히 섞어서...)
완료되었을때 자기가 받았던 구분키를 같이 Broadcast하면 네트웍 처리 하는 부분에서 늦게 완료가 되도
받는쪽에서는 이게 내가 받아야 하는 건지 아닌지 알수 있습니다.
동적으로 Receiver를 등록한다면 Action을 구분키를 더해서 만들면 편하겠죠....
동적이 아니라면 그냥 일단 받아서 내껀지 보고 맞으면 찍고 아니면 더 기다리고 이런식이 되겠죠.
제가 말하는 구분키는 Broadcast 하는 서비스 혹은 엑티비티 사이에만 적용되는 로컬 규약입니다.
서버를 손댈 필요는 없습니다.