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를 생성한 직후 이 메서드를 호출한다.