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

서버 통신 후 결과를 Listview에 보여줄때 문의드립니다.

0 추천
서버 통신 후 결과 json 데이타를 리스트뷰 어답터에 추가한 후 보여주는 기능을 구현하였습니다.

문제는 어답터에 추가된 서버 데이터의 숫자가 적을 때는 문제가 없으나 많아지면, 결과처리하는 동안

리스트뷰가 보여지지 않다가(5초이상) 한꺼번에 리스트뷰를 뿌려줘서 유저입자에서 보기에는 매우 부자연스럽습니다.

이런경우 asynctask를 써야하는건지,, 어떻게 해결해야 될지 잘 모르겠습니다.

시간이 걸리더라도 순차적으로 리스트뷰에 항목이 추가되는 것을 보여주면 될것 같은데, 어떻게 적용해야 될지 모르겠습니다.

경험자분 고견 부탁드립니다.
익명사용자 님이 2014년 5월 29일 질문

2개의 답변

+1 추천
 
채택된 답변
생각하신대로 AsyncTask쓰면서 onProgressUpdate를 잘 쓰셔서 파싱할때 데이터 하나 나올때마다 리스트뷰 갱신 해주셔도 되요. adpater에 넘겨주는 데이터에 add해 줄때(아마 for나 while로 하겠죠?) add하고 갱신하고 add하고 갱신하고 뭐 이런식으로 해도 되요..
YeonMin (17,860 포인트) 님이 2014년 5월 29일 답변
+1 추천
음~~! 5초라.... 5초라는 시간이 엄청 긴시간인데....

얼마나 많은 량의 데이터를 받기에....

머 어뎁터 리스트뷰 라이브러리는 이미 입증된 라이브러리 이므로 코드내 특별한 문제가 없다는 가정하에...

데이터가 무지하게 많아서 느려지는 문제는 딱히 속도를 늘릴 방법은 없습니다.

물리적으로 불가능 하지요~~!

허나 리스트뷰에 뿌리신다는 걸보니 데이터의 수가 많은건 아닌지요?

데이터 수가 많아 오래 걸린다면 페이징이 답이겠지요~!

또 하나의 데이터에 너무 많은 정보가 뿌려지는 문제라면 리스트뷰에 뿌려지는 정보만을 받아오도록 작업이 되어야 겠지요~~!
ThisPlus (46,920 포인트) 님이 2014년 5월 29일 답변
...