백업 응용 프로그램을 작성 중이며 연락처 데이터베이스의 어떤 레코드가 업데이트되었는지 알고 있어야 해당 레코드 만 백업 할 수 있습니다. 설명서를 살펴 봤는데 ContactsContract.RawContacts 클래스에 "DIRTY"상수 필드가있는 것으로 보입니다.이 필드는 업데이트되는 행에 대해 "1"로 설정해야합니다. 그러나이 필드가 언제 "0"으로 지워지는지는 분명하지 않습니다. 누군가이 코드를 사용하는 방법에 대한 예제 코드를 제공 할 수 있습니까? 이 필드를 사용하여 연락처가 추가 또는 업데이트되었는지 확인할 수 있습니까? 이것이 올바른 방법이 아니라면 누군가 다른 방법을 제안 할 수 있습니다. 또한 ContactsContentObserver() 호출을 사용하여 연락처 데이터베이스에 변경 사항이있을 때마다이를 식별 할 수 있다는 것을 알고 있지만 이는 너무 비싸고 할 일이없는 백그라운드에서 항상 실행중인 응용 프로그램을 필요로합니다. 그. 여러 연락처가 추가되거나 업데이트되었을 때 타임 스탬프를 추출 할 수 있다면 완벽 할 수도 있지만 어떻게 할 수는 없어요. 도움을 주시면 대단히 감사하겠습니다.연락처 데이터베이스에서 어떤 행이 업데이트되었는지 확인하는 방법
답변
설명서를 살펴본 결과 ContactsContract.RawContacts 클래스에 "DIRTY"상수 필드가있는 것으로 보입니다.이 필드는 업데이트되는 행에 대해 "1"로 설정해야합니다. 그러나이 필드가 언제 "0"으로 지워지는지는 분명하지 않습니다.
필자의 경험에 따르면 일종의 '더티'표시기가있을 때마다 백업/동기화 작업 중에 데이터가 성공적으로 커밋되면 백업/동기화 앱이 다시 설정해야합니다.
두 개 이상의 응용 프로그램을 사용할 때 문제가 발생할 수 있습니다. 데이터를 업데이트 한 후 언제든지 처음 실행하면 플래그가 재설정되고 다음 실행은 백업/동기화 할 항목이 없습니다.
이 경우 사용자가 '동기화'앱을 사용할 수 있지만 '백업'작업을 원할 경우 ContentObserver를 등록하면 더 나은 목적을 달성 할 수 있으며 이유가 없습니다. 올바르게 구현 된 경우 자원에 '비싸'야하는 이유는 무엇입니까?
편집 : '타임 스탬프'는 없지만 '버전'필드가 업데이트됩니다 ('DIRTY'가 설정된 경우). 이 필드를 백업하는 경우 'DIRTY'플래그를 설정하고 연락처 DB의 현재 VERSION과 가장 최근의 백업을 비교하면됩니다.
답장을 보내 주셔서 감사합니다. "VERSION"필드에서 변경 사항을 확인합니다. 이것은 ContentObserver를 등록하는 것보다 간단한 구현으로 보인다. – AnilV
VERSION 필드를 가져 오는 쿼리를 알려주시겠습니까? http://developer.android.com/intl/ja/reference/android/provider/ContactsContract.RawContacts.html에 대한 우려가 있지만 실마리를 찾을 수 없습니다. – kgandroid
@kgandroid : 'RawContacts.VERSION'을'projection' 인자로 전달 된'String []'의 요소 중 하나로서'getContentResolver(). query (...)'호출에 추가 할 수 있습니다. 게시 한 링크의 예제 코드를 참조하십시오. – Squonk
- 1. SQL에서 행이 업데이트되었는지 확인하는 가장 좋은 방법
- 2. sqlite에서 행이 업데이트되었는지 여부를 확인 하시겠습니까?
- 3. 행이 없는지 확인하는 방법?
- 4. SQL 데이터베이스에서 연락처 목록 만들기
- 5. Interbase 데이터베이스에서 어떤 쿼리가 실행 중인지 확인하는 방법
- 6. 레코드 집합 행이 비어 있는지 확인하는 방법?
- 7. SqlCe 쿼리에 행이 있는지 여부를 확인하는 방법?
- 8. DatagridView의 행이 선택되었는지 여부를 확인하는 방법
- 9. 데이터 집합 공급자에서 매개 변수가 업데이트되었는지 확인하는 방법
- 10. 어떤 코드 행이 실행될 때마다 깨는 방법
- 11. 어떤 명령이 어떤 명령을 실행했는지 확인하는 방법
- 12. Mechanize - 페이지가 업데이트되었는지 확인하는 가장 간단한 방법은 무엇입니까?
- 13. 아이폰이 데이터베이스에서 데이터를 다운로드 한 다음 데이터베이스가 업데이트되었는지 확인하십시오.
- 14. 배열 업데이트를 확인하는 방법
- 15. 데이터베이스에서 행이 null이 아닌 모든 테이블
- 16. 데이터베이스에서 행이 차지하는 저장 공간을 확인하십시오.
- 17. 웹 서버의 정적 파일이 업데이트되었는지 확인하는 방법은 무엇입니까?
- 18. php를 사용하여 데이터베이스에서 Outlook으로 연락처 내보내기
- 19. MySQL 행이 고유한지 확인하는 방법은 무엇입니까?
- 20. 트리거가있는 테이블 행이 있는지 확인하는 방법은 무엇입니까?
- 21. SSRS - 행이 전환되거나 표시되는지 확인하는 방법은 무엇입니까?
- 22. 테이블의 행이 있는지 확인하는 방법은 무엇입니까?
- 23. UpdatePanel에서 어떤 컨트롤이 업데이트되었는지 어떻게 식별 할 수 있습니까?
- 24. 어떤 프로세스가 sys_open을 시작했는지 확인하는 방법
- 25. imageview에서 어떤 이미지가 호출되는지 확인하는 방법
- 26. 어떤 블루투스 프로파일이 통신에 사용되는지 확인하는 방법
- 27. 어떤 페이지가 Usercontrol을 호출했는지 확인하는 방법
- 28. 어떤 파일이 rcs 파일에서 변경되었는지 확인하는 방법
- 29. cocoa-touch : 어떤 객체를 만졌는지 확인하는 방법
- 30. 변수가 어떤 종류의 IEnumerable인지 확인하는 방법
user887304 어떻게 문제를 해결 했습니까 – rakesh