2010-06-04 2 views
2

내 안드로이드 애플리케이션이 버스 통과 시간의 대용량 데이터베이스를 처리하고 있으며 다른 애플리케이션이 특정 버스 통과 시간을 표시 할 수 있도록 허용하려고합니다. 우리는이를 위해 콘텐츠 제공 업체를 이용하고 싶습니다. 대부분의 예제는 SQL 데이터베이스를 사용하는 것으로 보이지만 일부 사용자 정의 텍스트 파일을 사용합니다. 나는 그 일을하는 가장 좋은 방법이 무엇인지 궁금해하고있었습니다. 콘텐츠 공급자를 사용하고 수동으로 텍스트 데이터로 채울 사용자 지정 개체에 Cursor 인터페이스를 구현할 수 있다고 생각했습니다. 이것이 가능한가? 누구든지 더 나은 아이디어를 가지고 있습니다 (물론 SQL Lite로 변경하는 것을 제외하고)?SQL없이 Android 콘텐트 제공자

미리 감사드립니다.

답변

3

가능합니까?

확인합니다. ConetntProvider은 외관상 사실상 내부 구현에 대해 그다지 지시하지 않습니다.

열쇠는 문서입니다. SQLite를 데이터 저장소로 사용하지 않는 경우 대부분 query() 등의 전체 WHERE 절을 지원하지 않을 것입니다. 따라서 WHERE 절, 사용 가능한 열 등을 지원하는 것이 무엇이든 관계없이 개발자가 콘텐츠 공급자와 통합하여 개발자가이를 수행하는 방법을 알고 있도록 문서화해야합니다. 그렇지 않으면 잘못된 가정을 할 수 있습니다.

+0

URI로 해킹해도 커서를 어떻게 피할 수 있습니까? (새로운 DB, Realm 사용) – Dexter

+0

@Dexter : "커서를 피할 수 없다". 영역은'ContentProvider' 뒤에 놓 이도록 설계되지 않았습니다. Realm 결과를'MatrixCursor' 또는 다른'Cursor' 구현으로 변환해야합니다. – CommonsWare

+0

내 주요 동기 CursorLoader 및 동기화 어댑터를 사용하는 것입니다. 커서의 일부 형식을 구현해야합니까, 그렇지 않으면 콘텐츠 공급자를 완전히 건너 뛰고 사용자 지정 코드를 만들어야합니까? 나는 그 계기를 알고 있지만, 내 상황에서는 무엇을 할 것인가? 내 동기화 요구는 꽤 기본입니다. – Dexter