콘텐츠 공급자는 데이터의 중앙 리포지토리에 대한 액세스를 관리합니다. 공급자는 Android 응용 프로그램의 일부로, 데이터 작업을 위해 자체 UI를 제공하는 경우가 많습니다. 그러나 콘텐츠 공급자는 주로 공급자 클라이언트 개체를 사용하여 공급자에 액세스하는 다른 응용 프로그램에서 사용됩니다. 공급자 와 공급자 클라이언트는 함께 프로세스 간 통신 및 보안 데이터 액세스를 처리하는 데이터에 대한 일관된 표준 인터페이스를 제공합니다. 계약 클래스는 응용 프로그램이 콘텐츠 URI, 열 이름, 의도 작업 및 콘텐츠 공급자의 기타 기능으로 작업하는 데 도움이 되는 상수를 정의합니다. 계약 클래스는 공급자와 자동으로 포함되지 않습니다. 공급자의 개발자는 이를 정의한 다음 다른 개발자가 사용할 수 있도록 해야 합니다. Android 플랫폼에 포함된 많은 공급자는 패키지 android.provider에 해당 계약 클래스가 있습니다. 콘텐츠 URI는 공급자의 데이터를 식별하는 URI입니다. 콘텐츠 URI에는 전체 공급자(해당 권한)의 기호 이름과 테이블 또는 파일(경로)을 가리키는 이름이 포함됩니다. 선택적 ID 부분은 테이블의 개별 행을 가리킵니다. ContentProvider의 모든 데이터 액세스 메서드에는 콘텐츠 URI가 인수로 있습니다. 이렇게 하면 액세스할 테이블, 행 또는 파일을 결정할 수 있습니다.

콘텐츠 URI의 기본 내용은 주제 콘텐츠 공급자 기본 사항에 설명되어 있습니다. 응용 프로그램은 의도를 가지고 콘텐츠 공급자에 간접적으로 액세스할 수 있습니다. 응용 프로그램은 ContentResolver 또는 ContentProvider의 메서드를 호출하지 않습니다. 대신 작업을 시작하는 의도를 전송하며, 이 의도는 공급자 자체 응용 프로그램의 일부인 경우가 많습니다. 대상 활동은 UI에서 데이터를 검색하고 표시하는 일을 담당합니다. 의도의 작업에 따라 대상 활동은 사용자에게 공급자의 데이터를 수정하라는 메시지를 표시할 수도 있습니다. 의도에는 대상 활동이 UI에 표시되는 “추가” 데이터도 포함될 수 있습니다. 그러면 사용자는 공급자의 데이터를 수정하는 데 사용하기 전에 이 데이터를 변경할 수 있습니다. 이 장의 목적은 쿼리의 구조 및 구현, 삽입, 삭제 및 업데이트 방법의 구조와 구현에 중점을 둔 Android 콘텐츠 공급자 구현과 관련된 정확한 단계에 대한 보다 자세한 개요를 제공하는 것입니다. 공급자 클래스입니다.

콘텐츠 공급자의 데이터에 액세스하기 위해 콘텐츠 확인자 클래스를 실용화했으며 SQLite 자습서에서 만든 데이터베이스 프로젝트가 콘텐츠 공급자와 콘텐츠 확인자를 모두 사용하도록 수정되었습니다. 콘텐츠 공급자는 표준 MIME 미디어 형식 또는 사용자 지정 MIME 형식 문자열 또는 둘 다 반환할 수 있습니다. Android 시스템은 공급자를 시작할 때 create()를 호출합니다. 이 메서드에서는 빠르게 실행되는 초기화 작업만 수행하고 공급자가 실제로 데이터에 대한 요청을 받을 때까지 데이터베이스 생성 및 데이터 로드를 연기해야 합니다. onCreate()에서 긴 작업을 수행하는 경우 공급자의 시작 속도가 느려집니다. 그러면 공급자에서 다른 응용 프로그램에 대한 응답속도가 느려집니다. 공급자에 데이터를 삽입하려면 ContentResolver.insert() 메서드를 호출합니다. 이 메서드는 공급자에 새 행을 삽입 하 고 해당 행에 대 한 콘텐츠 URI를 반환 합니다.

이 코드 조각은 사용자 사전 공급자에 새 단어를 삽입하는 방법을 보여 줍니다: 콘텐츠 공급자의 데이터에 액세스하려는 경우 응용 프로그램의 컨텍스트에서 ContentResolver 개체를 사용하여 공급자와 클라이언트로 통신합니다. ContentResolver 개체는 ContentProvider를 구현하는 클래스의 인스턴스인 공급자 개체와 통신합니다. 공급자 개체는 클라이언트로부터 데이터 요청을 수신하고, 요청된 작업을 수행하고, 결과를 반환합니다. 이 개체에는 ContentProvider의 구체적인 하위 클래스 중 하나의 인스턴스인 공급자 개체에서 동일한 이름의 메서드를 호출하는 메서드가 있습니다.