original source : https://youtu.be/bc6wW-g6uss

image
image

=========================================================

.

.

image

=========================================================

.

.

image

=========================================================

.

.

image

content provider에서 data set이란 database의 table이라고 생각할수 있다.

=========================================================

.

.

content provider에서 data를 가져올때 cursor에 넣어서 되돌린다. 즉 cursor를 통해 data에 접근하게 된다. 

image
image

=========================================================

.

.

image

Contract class는 아래와 같이 만들수 있다. authority, data set이름, uri, 칼럼이름, type 이름등을 지정해서 여러곳에 햇갈리지 않고 일관되게 사용할수 있게 한다. 

image
image

content provider의 data에 접근하기위해 <uses-permission> 를 이용해서 permission을 얻을수 있다. content provider는 다른 app이 어떤 permission을 얻어야 하는지 지정해주어야 한다. 경우에 따라 다른 app에게 임시 permission은 허용하기 위해서는 content provider에 android:grantUriPermissions를 설정하거나 하위에 <grant-uri-permission>설정한다. 임시 permission 이 필요한 app의 경우 호출 intent에 위와 같이 Flag를 지정해 준다. 

image
image
image

=========================================================

.

.

image
image
image
image
image

=========================================================

.

.

image
image
image

=========================================================

.

.

참고자료) UriMatcher 실제 사용 예시 https://youtu.be/6ZbAsvifQq8

image

=========================================================

.

.

image
image

=========================================================

.

.

image

=========================================================

.

.

authority, data set이름, uri, 칼럼이름, type 이름등을 지정해서 여러곳에 햇갈리지 않고 일관되게 사용할수 있게 한다. 

image
image

=========================================================

.

.

image
image
image
image
image
image
image
image

=========================================================

.

.

image

original source : https://youtu.be/ycK7uN_fJJM

이강의에서 만들고자 하는 예시는 위와 같다. 오른쪽은 체팅리스트 이고 왼쪽은 상세 채팅내용이다.

===========================================================

SimpleCursorAdapter는 ResourceCursorAdapter를 extends하고 ResourceCursorAdapter는 CursorAdapter 를 extends한다.

===========================================================

===========================================================

===========================================================

===========================================================

===========================================================

===========================================================

===========================================================

===========================================================

original source : https://youtu.be/qqB2OJTg1RU

===========================================================

===========================================================

===========================================================

===========================================================

adapter안에 이미 다른 cursor의 내용이 있을수 있으므로 changeCursor()를 이용 내용을 새롭게 고쳐준다.

===========================================================

===========================================================

===========================================================

===========================================================

original source : https://youtu.be/8Xiqg86GWl8

rawQuery()는 Cursor obj를 리턴한다.

===========================================================

위의 그림에 빨간색으로 age는 내용에 오타가 있어서 수정한 것이다.

===========================================================

Cursor는 기본적으로 -1부터 시작된다. 즉 아무런 데이터가 없는 경우에 cursor는 -1위치에 있게 된다. 실제 data는 0부터 시작된다.

===========================================================

===========================================================

===========================================================

nullColumnHack에 기입된 칼럼의 경우 데이터가 주어지지 않는 경우 NULL값이 배정되서 exception 발생을 막는다.

===========================================================

===========================================================

===========================================================

===========================================================

===========================================================

COLLATE LOCALIZED ASC는 지역언어를 정렬의 우선으로 하는 기능이다. 

===========================================================

original source : https://youtu.be/ViXxH72PEII

===========================================================

===========================================================

===========================================================

===========================================================

===========================================================

===========================================================

===========================================================

===========================================================

===========================================================

===========================================================

===========================================================

original source : https://youtu.be/r0SCj82Ai3I?t=1780

===========================================================

===========================================================

original source : https://youtu.be/h71-G8T73Hk

===========================================================

===========================================================

===========================================================

===========================================================

===========================================================

context obj를 이용하여 내외장에 있는 내 자신 app package 폴더에 접근할수 있다.

===========================================================

내자신 app관련 파일이 내외장 폴더에 존재하는 예시를 보여주고 있다.

===========================================================

Environment obj를 통해 접근 가능하다.

===========================================================

===========================================================