[Components] Content Provider

Greenddoovie·2022년 1월 7일
0

안드로이드

목록 보기
6/8

Content Provider

공식문서에 의하면, "Content Provider는 중앙 데이터 저장소에 접근을 관리한다." 라고 쓰여있다.

접근을 관리하는데 어디서 접근하는 것을 관리할까?

외부 앱이 Content Provider를 제공하고 있는 앱의 데이터에 접근하는 것을 관리한다.

즉, 외부에서 다른 앱의 데이터를 사용하려면 다른 앱은 Manifest 파일에 content provider를 등록해야한다.

결론

외부 앱이 나의 DB에 접근할 수 있는 인터페이스를 제공하는 안드로이드 컴포넌트

원리

Content Resolver를 통해 Content Uri를 해당 앱에 보내고, 앱의 Content Provider가 Uri를 해석하여 필요한 DB 작업을 하게 된다. Uri를 전달받은 Content Provider는 기본적인 CRUD 연산이 가능므로, 필요한 작업을 수행한 Content Provider는 결과값을 Content Resolver에 반환한다.

Method

  1. insertAll
  2. query
  3. delete
  4. insert
  5. update

Content Resolver

| Content 모델에 대한 어플리케이션 접근을 제공하는 클래스

  • getContentResolver()를 이용해 만든 객체에, query문을 사용하여 원하는 데이터를 요청한다.

제공받을 앱에서 제공하는 AUTHORITY를 선언
authority를 이용하여 uri 값 생성
query(uri, projection, selection, selectionArgs, sortOrder)

  1. uri: content://scheme 형태의 주소
  2. projection: 가져올 컬럼 이름 목록, null이면 모든 컬럼
  3. selection: where 절에 해당하는 내용
  4. selectionArgs: selection에서 '?'로 표시한 곳에 들어갈 데이터
  5. sortOrder: 정렬을 위한 order by 구문
profile
기초를 이해하면 세상이 다르게 보인다

0개의 댓글