Android 데이터베이스를 온라인 SQL Server와 동기화하는 방법은 무엇입니까?
Android 플랫폼에서 제공하는 내장 SQLite에 다양한 유형의 데이터를 저장하는 Android 앱을 개발 중입니다.
앱 내부에 내 서버의 온라인 SQL Server 데이터베이스와 로컬 SQLite 데이터베이스간에 데이터를 동기화하는 "동기화"버튼이 있습니다.
이를 처리하기위한 해결 방법은 무엇입니까? 이 기능은 모바일에서 캘린더의 이벤트를 볼 수있는 Google 캘린더에서 찾을 수 있으며, 새 이벤트를 추가하고 데이터를 동기화하면 온라인 계정으로 이동하여 업데이트 된 데이터를 볼 수도 있습니다.
참고 : 모바일 사용자에게 인터넷 연결없이 앱을 사용할 수있는 기능을 제공하고 싶기 때문에 데이터베이스를 온라인으로 중앙 집중화하고 싶지 않습니다.
Android SDK 데모 ( 동기화 어댑터를 사용하여 데이터 전송) 에서 SampleSyncAdapter 프로젝트를 살펴 봐야합니다 . 항상 동기화 버튼을 수동으로 탭하여 사용자 상호 작용이 필요없는 동기화 "Android 스타일"을 수행하는 방법을 보여줍니다.
또한 마지막 커밋 이후 모든 변경 사항에 대한 "델타"를 SyncAdapter에 제공 할 수있는 서버 소프트웨어를 작성해야합니다. 가장 기본적인 접근 방식은 서버에서 가져와야하는 앱에 "마지막 동기화"타임 스탬프를 유지하는 것입니다. 그렇지 않으면 클라이언트와 서버 간의 시간 차이로 인해 문제가 발생할 수 있습니다. 모든 타임 스탬프를 GMT 또는 원하는 시간대로 정규화하되 그 결정을 따르십시오. 앱에서 현지 시간으로 타임 스탬프를 표시해야하는 경우 정규화 된 타임 스탬프를 현지 시간으로 변환하기 위해 Java Calendar 및 TimeZone 클래스를 사용해야합니다.
또한 앱은 변경된 로컬 레코드를 "더티"로 플래그 지정해야하므로 SyncAdapter는 이러한 변경된 레코드 또는 새 레코드를 서버에 업로드해야 함을 알고 있습니다.
서버 소프트웨어에는 다음과 같은 최소 기능이 필요합니다.
- 기존 레코드 업데이트 기능
- 새 레코드 추가 기능
- 마지막 동기화 이후 업데이트 된 레코드 가져 오기 (앱에서 타임 스탬프 제공)
- 마지막 동기화 이후 새 기록 가져 오기 (앱에서 타임 스탬프 제공)
이 모든 것이 어떻게 작동하는지와 통신을위한 서버 API 인터페이스를 디자인하는 방법에 대한 아이디어를 얻기 위해 Google 캘린더와 같은 일부 Google API를 읽어 볼 수도 있습니다.
'programing' 카테고리의 다른 글
매개 변수가있는 ASP.NET MVC 3 클라이언트 쪽 유효성 검사 (0) | 2021.01.15 |
---|---|
.net 응용 프로그램에서 SQL Server 시간 데이터 형식을 사용하는 방법은 무엇입니까? (0) | 2021.01.15 |
재귀 적으로 scp를 사용하지만 일부 폴더는 제외 (0) | 2021.01.15 |
Microsoft.Web.Administration을 참조하는 방법은 무엇입니까? (0) | 2021.01.15 |
getter 전용 자동 속성과 표현식 본문 속성의 차이점은 무엇입니까? (0) | 2021.01.15 |