Android Studio (Kotlin)

Android Component (5)

애용쓰 2022. 4. 18. 03:59

Content Provider

: 어떤 앱이 다른 앱으로 데이터를 제공하고자 할 경우 사용

요청은 ContentResolver 클래스에 의해 처리된다. 다양한 방법으로 데이터를 저장할 수 있다.

  • 하나의 안드로이드 디바이스에는 다수의 ContentProvider가 존재할 수 있다.
  • 특정 ContentProvider가 어떤 앱과 통신하는지 알아야하며 모든 데이터의 동기화를 유지해야한다.
  • ContentResolver

ContentResolver에서 아래 메서드들 중 하나를 호출하면 ContentResolver가 ContentProviders에게 해당 기능을 수행하라고 알려준다.

  • query() : 데이터 읽기
  • insert() : 데이터에 행 추가
  • updeate() : 데이터 갱신
  • delete() : 데이터로부터 행 삭제

URI : Uniform Resource Identifier

  • 데이터의 위치를 표시하고 데이터를 가져오기 위해 사용한다. id까지 있으면 단수, 경로까지만 있으면 복수

Content Resolver

ContentResolver를 활용하여 ContentProvider에서 제공하는 데이터에 접근할 수 있다.

 

UriMatcher 

: addURI로 구분할 URI를 등록하면 분석하여 Int 값을 리턴한다. 이 값으로 switch 분기할 수 있다.

 

ContentProvider 작성

  • ContentProvider를 상속받는다.
  • 필수 메서드
  • query() : 데이터 조회, 데이터를 cursor 객체로 반환
  • insert() : 새로운 행을 삽입, 새로 삽입된 행에 대한 콘텐츠 uri를 반환
  • update() : 기존 행을 업데이트, 업데이트한 행 개수 반환
  • delete() : 행을 삭제, 삭제한 행의 개수를 반환
  • getType() : 콘텐츠 URI에 해당하는 MIME 유형을 반환
  • onCreate() : android 시스템은 provider를 생성한 직후 이 메서드를 호출한다.