안드로이드 content provider 예제

Posted by abitou on Αυγ 02, 2019

ContentProvider는 콘텐츠 URI의 경로 부분을 사용하여 액세스할 테이블을 선택합니다. 공급자는 일반적으로 노출하는 각 테이블에 대한 경로를 가합니다. 커서는 행의 «목록»이므로 커서의 내용을 표시하는 좋은 방법은 SimpleCursorAdapter를 통해 ListView에 연결하는 것입니다. 물론 모든 세부 사항을 다룰 수 있지만 안드로이드의 API를 파고 블로그, 포럼 또는 안드로이드 메일링 리스트에서 논의 된 내용을 이해하기 위해 견고한 기반이 있어야합니다. 이 콘텐츠가 마음에 드셨다면 내 블로그를 구독해 보세요. 후속 게시물에 더 자세히 콘텐츠 제공 업체에 파고 거 야. 그때까지, 행복 코딩! 이 게시물은 원래 게시물의 개정 된 버전입니다. 이 때문에 일부 의견이 오래 된 것처럼 보일 수 있습니다. ContentProvider에서 레코드를 반환하는 것은 매우 쉽습니다. 안드로이드에는 도우미 클래스가 있으며 여기에서 사용할 수 있습니다 : SQLiteQueryBuilder.

콘텐츠 공급자의 query() 메서드 내에서 아래와 같이 이 클래스를 사용할 수 있습니다. 매니페스트 파일에 하나 이상의 요소를 사용 하 여 공급자에 대 한 권한을 정의 합니다. 공급자에 고유한 권한을 만들려면 android:name 특성에 대한 Java 스타일 범위 지정을 사용합니다. 예를 들어 읽기 권한 com.example.provider.permission.READ_PROVIDER의 이름을 지정합니다. 다음 목록에서는 전체 공급자에 적용되는 사용 권한부터 시작하여 공급자 권한의 범위를 설명한 다음 보다 세분화됩니다. 더 세분화 된 사용 권한은 더 큰 범위를 가진 사람 보다 우선: Android 플랫폼에 기본 제공 공급자 중 하나는 사용자가 유지 하려는 비표준 단어의 철자를 저장 하는 사용자 사전입니다. 표 1은 이 공급자의 테이블에서 데이터가 어떻게 보일지 보여 줍니다. 실제로 권한은 일반적으로 이전 섹션에서 새 콘텐츠 공급자 클래스를 만들 때 선언된 대로 com.ebookfrenzy.database.database.provider.MyContentProvider에서 콘텐츠 공급자 클래스 자체의 전체 패키지 이름입니다. 지금까지 코드에는 여전히 대부분의 기능이 없습니다. 그러나 CRUD 메서드를 구현하기 전에 공급자로서의 역할에 대해 생각해야 합니다.

콘텐츠 공급자는 매우 정의에 따라 클라이언트에 데이터를 제공합니다. 이러한 클라이언트는 데이터에 액세스하는 방법을 알아야 합니다. 그리고 URI와 권한을 API처럼 취급해야 합니다. 기본적으로 클라이언트와 계약을 체결합니다. 그리고 공용 API는 이를 반영해야 합니다. 물론 이 것의 단점은 커서 개체가 Android 라이브러리에서 일반적으로 사용된다는 것입니다. 따라서 이 방법을 따르더라도 커서를 직접 얻을 수 있는 메서드를 추가해야 합니다. 콘텐츠 공급자는 그림 1에 설명된 대로 다양한 API 및 구성 요소에 대해 응용 프로그램의 데이터 저장소 계층에 대한 액세스를 조정합니다. 인터페이스를 만들기 전에 데이터를 저장하는 방법을 결정해야 합니다. 원하는 형식으로 데이터를 저장한 다음 필요에 따라 데이터를 읽고 쓸 인터페이스를 디자인할 수 있습니다.

그런 다음 사용자는 데이터를 보거나 수정하기 위해 UI에서 표시된 행 중 하나를 선택합니다. 앱은 ListView를 백업하는 커서에서 해당 행을 받고, 이 행의 _ID 값을 얻고, 콘텐츠 URI에 추가하고, 액세스 요청을 공급자에게 보냅니다.

Comments are closed.

Ο καιρός

ar8ra

advertisement