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

항상 로딩되는게 아니라 새 글이 있을 때만 로딩되게 하고싶어요~

0 추천

SwipeRefreshLayout 사용했는데, 

항상 재로딩되는게 아니라 새 글이 있을 때만 reLoading되게 하고싶어요~ 

제가 서버쪽은 잘 몰라서 감이 안오는데.... 

클라이언트쪽에서 데이터 변화를 감지해서 변화가 없을때는 reLoading하지 않고, 변화가 있을때만 할 수는 없을까요? 

인스타그램처럼요.. 고수님들 부탁드립니다!!!!

 

 

고수님들 도와주세요!!!

동글8 (120 포인트) 님이 2016년 7월 30일 질문
동글8님이 2016년 7월 30일 수정

3개의 답변

+2 추천
푸쉬를 이용하시면 됩니다.

 

새로운 글이 등록되면, 서버에서는 각 단말기로 푸쉬를 전송하고

앱에서는 그것을 수신받아 refresh 또는 푸쉬에서 받은 데이터를 add 해주면 됩니다.
개발자초심 (21,220 포인트) 님이 2016년 7월 31일 답변
저도 푸시에 한표 추천!
0 추천
방법은 몇개 있을것 같습니다만...

1.서버에게 최근 글 id를 요청합니다.

2.단말은 수신 받은 id와 단말내 저장 되어있는 최신 글 id를 비교합니다.

3. 이값이 다르다면 서버에게 단말에 저장된 이후 글을 요청 합니다.

4. 단말은 수신 받은 값을 화면에 뿌려줍니다.

 

정도면 되지 않을까 합니다
익명사용자 님이 2016년 7월 31일 답변
우선 답변주셔서 정말 감사합니다.
알려주신 로직에 의하면 만약 3,4번째 글이 삭제되었거나 업데이트 되는 등의 변화는 그냥 무시되는 건가요...? 아니면 보안 가능한 방법이 있을까요?
위의 로직 대로라면 최신글만 불러오게 됩니다.
단말에서 글을 삭제 할수 있다면 서버로 부터 받아온 최신글 id 를 저장하는 로직이 추가 되어야 겠지요

단말내에서 삭제된 글도 서버에서 다시 불러오고 싶으시다면 전체 목록을 불러오는게 오히려 효율적 입니다.
그렇게 되면 새 글이 있을때만이 아니라 호출시에 모두 불러와야죠....
(어차피 전부 비교를 해야 함으로 전부를 비교하는 것은 비효율적인 면이 있습니다.)

개발 해야 할 요건이 정확히 어떤지 먼저 파악을 해봐야 할 것 같습니다.
0 추천

일반적으로 인스타나 페이스북 같은경우는 새로고침 기능과 더보기 기능을 제공합니다.

새로고침기능의 경우 SwipeRefreshLayout로 구현하는 경우가 많고 더보기는 리스트가 위로 스크롤 되면서 리스트상의 마지막 아이템이 몇개가 안남으면 서버로 부터 해당 인덱스 다음꺼를 요청하는 식으로 구현이 됩니다.

새로고침의 경우는 가장 최근 게시물 부터 몇개(저는 20개 정도로 개발했었음) 이렇게 받아 오게 되며

게시물을 쭉 보다가 마지막 몇개 안남으면(저는 서버로 부터 받아오는 시간을 고려 5개로 하였음) 서보로 부터 마지막 게시물 이전 게시물(저는 새로고침과 같이 20개씩 받아오게 했음) 을 불러오게 개발하는 케이스가 일반적입니다.

중간에 삭제되거나 수정된 게시물에 대해서는 위방식에서는 고려할 필요가 없겠죠.

싸만코 (2,260 포인트) 님이 2016년 8월 1일 답변
...