ContentProviser    Data Adapter       Activity      SW Maestro 3기 1-1Ligbuf팀 : 정승수, 송태웅, 김동우          멘토 : 손영수
Content Provider• 모든 패키지가 접근할 수 있는 공통된 저장  공간이 없음• Content Provider만이 어플리케이션 간에  데이터를 공유할 수 있는 유일한 방법 – 예 : 주소록, 전화 목록 등은 ...
Content Provider• getContentResolver()  – 데이터 추가 ,수정, 삭제를 위한 공통적인 인터    페이스    • query() insert() update() delete() 등..   ...
Content Provider• URI  – 각각의 Content Provider는 그 데이터 집합을    고유하게 식별하는 하나의 public 적인 URI 를    제공            1         2    ...
Content Provider                              ContentResolver     URI1              URI2                     URI3         ...
Data Adapter• 데이터와 뷰 사이에 존재하는 다리 역할• 데이터를 다양한 형태의 뷰로 보여주기 위한 객체  – CursorAdapter: Cursor(DB Query 데이터를 담는다.)로부터 데이    터를 s...
Data Adapter• notifyDataSetChanged()  – Data가 변경되었는지 Refresh를 해야하는지    첨부된 뷰에게 알린다.
Activity• 다들 알고 있듯이 뷰를 관리 한다고 보면 된  다.
ContentObserver• Content Provider에서 NotifyChange()메서  드를 호출 하면 등록 되있던  ContentObserver에서 OnChange()가 호출  됨                ...
3객체의 관계                                                  View            7. 뷰 변경delete(URI, Query, Query);       3. Data변경...
예제 동영상
예제 코드들 1. View에 Adpater 등록 및 ContentProvider에 ContentObserver를 등록ContentProvider에 ContentObserver를 등록 하는 부분은 가려져 있다.
예제 코드들2. Service객체를 시작하여 4초마다 주소록에 임의의 주소 추가
예제 코드들                           주의3. ContentProvider에서 Insert를 호출 하는 순간 자신의NotifyChange() 실행
예제 코드들                     주의4. Observer내부에 Onchange에서 어댑터에 데이터들의 변경을 알린다.
예제 코드들          주의이것은 내부적으로 가려진 코드를 이해를 돕기 위해 만든 코드라 돌아가진 않는다.
참고• 손영수 멘토님 블로그 :  http://arload.wordpress.com/2012/05/22/andr  oid_opensource_pattern/• ContentProvider내용참고:  http://unde...
Upcoming SlideShare
Loading in …5
×

Android ContentProvider Adapter Activity Relation

1,411 views

Published on

ContentProvider에서 ObserverPattern을 이용하여 Adapter와 View에 통지하여 알아서 갱신 될수 있는 Android의 객체들을 설명

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,411
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
9
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Android ContentProvider Adapter Activity Relation

  1. 1. ContentProviser Data Adapter Activity SW Maestro 3기 1-1Ligbuf팀 : 정승수, 송태웅, 김동우 멘토 : 손영수
  2. 2. Content Provider• 모든 패키지가 접근할 수 있는 공통된 저장 공간이 없음• Content Provider만이 어플리케이션 간에 데이터를 공유할 수 있는 유일한 방법 – 예 : 주소록, 전화 목록 등은 한 앱이 관리하지 않음…
  3. 3. Content Provider• getContentResolver() – 데이터 추가 ,수정, 삭제를 위한 공통적인 인터 페이스 • query() insert() update() delete() 등.. • notifyChange()를 통하여 데이터의 변화를 옵져버 들에게 통지 할 수 있음
  4. 4. Content Provider• URI – 각각의 Content Provider는 그 데이터 집합을 고유하게 식별하는 하나의 public 적인 URI 를 제공 1 2 3 4 – 예): content://myprovider/Data/13 • 1 : 표준 접두어 Content Provider라고 알린다. • 2 : Content Provider의 이름 • 3 : Path부분 • 4 : 레코드 값
  5. 5. Content Provider ContentResolver URI1 URI2 URI3 URI4ContentProvider ContentProvider ContentProvider ContentProvider 1 2 3 4
  6. 6. Data Adapter• 데이터와 뷰 사이에 존재하는 다리 역할• 데이터를 다양한 형태의 뷰로 보여주기 위한 객체 – CursorAdapter: Cursor(DB Query 데이터를 담는다.)로부터 데이 터를 selection 위젯에 공급하는 adapter. Content Provider 가 제공하는 data를 위젯에 연결할 때도 사용함. – SimpleAdapter: data를 XML Layout 파일에 지정된 View형태로 표 하는데 사용 함. – ActivityAdapter, ActivityIconAdapter: 특정 Intent 발생 시 실행될 activity의 이름이나 아이콘 목록을 위한 adapter. – ArrayAdapter: array나 java.util.List에 저장된 data를 위한 adapter.
  7. 7. Data Adapter• notifyDataSetChanged() – Data가 변경되었는지 Refresh를 해야하는지 첨부된 뷰에게 알린다.
  8. 8. Activity• 다들 알고 있듯이 뷰를 관리 한다고 보면 된 다.
  9. 9. ContentObserver• Content Provider에서 NotifyChange()메서 드를 호출 하면 등록 되있던 ContentObserver에서 OnChange()가 호출 됨 Content 3.OnChange() 1. Register Observer Content 3.OnChange() ContentProvider Observer Content 3.OnChange() 2. Notify Observer
  10. 10. 3객체의 관계 View 7. 뷰 변경delete(URI, Query, Query); 3. Data변경 1.Adapter 등록 ContentResolver 2. Observer를 등록 registerContentObserver(URI, false, Observer); Content Provider Content Adapter Observer URI 5. OnChange() 호출 6. notifyDataSetChanged() 4.NotifyChange(URI,NULL)호출
  11. 11. 예제 동영상
  12. 12. 예제 코드들 1. View에 Adpater 등록 및 ContentProvider에 ContentObserver를 등록ContentProvider에 ContentObserver를 등록 하는 부분은 가려져 있다.
  13. 13. 예제 코드들2. Service객체를 시작하여 4초마다 주소록에 임의의 주소 추가
  14. 14. 예제 코드들 주의3. ContentProvider에서 Insert를 호출 하는 순간 자신의NotifyChange() 실행
  15. 15. 예제 코드들 주의4. Observer내부에 Onchange에서 어댑터에 데이터들의 변경을 알린다.
  16. 16. 예제 코드들 주의이것은 내부적으로 가려진 코드를 이해를 돕기 위해 만든 코드라 돌아가진 않는다.
  17. 17. 참고• 손영수 멘토님 블로그 : http://arload.wordpress.com/2012/05/22/andr oid_opensource_pattern/• ContentProvider내용참고: http://underclub.tistory.com/366• Custom ContentObserver 및 Custom ContentProvider : http://olpost.com/r/1442205

×