노블의 개발이야기

[Android] UriMatcher 본문

Android

[Android] UriMatcher

더플러스 2017. 7. 24. 11:43

ContentProvider를 공부하던 중 UriMatcher를 보게되었다.

UriMatcher란?

두 개의 Uri를 비교하여 해당하는 값을 출력해주는 기능을 하는 class 이다.

URI 구성

content://com.androidhuman.phoneprovider/phones/lg/3

URI는 크게 authority와 path로 구성되어 있다.

Description
content:// 컨텐트 프로바이더에 의해 제공되는 데이터임을 알린다.
이부분은 변하지 않는다.
com.androidhuman.phoneprovider 컨텐트 프로바이더의 authority 부분이다.
각 컨텐트 프로바이더의 고유 이름이다.
phones/lg 컨텐트 프로바이더의 path 부분이다.
어떤 데이터를 변환할지를 이 부분을 통해 지정한다.
/3 phones/lg의 하위 데이터 중 하나를 가리키는 것이다.
해당 데이터의 ID를 나타낸다.

UriMatcher(int code)

URI 트리의 루트 노드를 생성한다.

Parameters Description
code 루트 URI와 일치하는 코드

addURI(String authority, String path, int code)

Match를 위한 URI와 URI가 일치할 때 리턴할 코드를 추가한다.

URI 노드는 정확히 일치하는 문자열 일 수 있으며, 모든 텍스트와 일치하는 토큰 "*" 또는 숫자 만 일치하는 토큰 "#"일 수 있다.

Parameters Description
authority 컨텐트 프로바이더 중에서 어느 authority에 해당하는지 구분할 때 사용하는 지정된 값이다.
path authority 중에서 다음 path에 해당한다.
path/# 는 path 다음에 오는 모든 숫자를 지칭
path/* 의 경우 숫자와 문자를 포함한다.
code match() 메소드 사용 시 일치한다면 반환하는 정수를 의미한다.

match

addURI로 등록된 URI와 입력된 URI를 비교하여 지정된 code를 리턴한다.

참고 사이트

Comments