2017-11-12 3 views
0

을 비교하면 서버의 JSON에서 가져온 개체 목록 (Employees)이 있습니다. 앱을 열 때마다 JSON을 파싱하고 ArrayList를 만들고 RecyclerView를 채 웁니다. 데이터베이스를 만들고 JSON 대신 데이터베이스에서 데이터를로드하고 싶습니다 (오프라인에서도 작동하므로 더 빠름).Android : 내 Android 앱에서 json 데이터와 데이터베이스

제 질문은 : 데이터베이스를 업데이트하여 JSON과 데이터베이스에 동일한 데이터를 유지하도록하려면 어떻게해야합니까?

이렇게하는 가장 좋은 방법은 무엇입니까? 예를 들어 Gmail 앱을 열면 오프라인 일 때도 내 이메일을로드하므로 데이터베이스를 사용해야합니다.

EDIT : DBFlow를 사용하고 전체 목록에서 save()를 호출하여 해결했습니다. 행을 업데이트할지 또는 새 행을 삽입 할지를 자동 결정합니다.

+0

JSON을 장치에 파일로 저장하는 것이 좋습니다. 파일을 문자열로 읽은 다음 이미 데이터를 RecycleView에로드해야하는 파서로 다시로드하십시오. – Barns

+0

분명히 파싱 된 JSON 데이터를 사용하여 데이터베이스를 업데이트 할 수 있습니다. 그러나 문자열을 비교할 수 있습니다. 문자열은 이름이나 문자열 또는 정수에 적합합니다. 필요한만큼. 데이터베이스를 전달하고 비교하지 않기 때문에 Gmail 예제를 삭제해야한다고 생각합니다. 그건 두 가지 문제입니다. – CmosBattery

답변

1
  1. 시나리오는 "DB가 비어 있습니다"쇼 빈보기 메시지는 API 엔드 포인트에서 데이터를 가져 오기 ->하는 데이터베이스에 그 내용을 저장하고 나중에 데이터베이스에서 RecyclerView를 채 웁니다.

  2. 시나리오 "DB 비어 있음": 데이터베이스에서 채우기 - 새 데이터를 가져 오려고 시도합니다. 연결이 없으면 이전 데이터가 여전히 표시됩니다. 그렇지 않으면 첫 번째 시나리오에서 단계를 수행하십시오.

또한 동일한 데이터를 다시로드하는 동안 글리치를 방지하기 위해 RecyclerView를 채우는 사용자 정의 클래스를 비교할 수 있습니다.

관련 문제