안드로이드 개발 질문/답변
(글 수 45,052)
Contacts API에서 주소록 데이터를 추가할 때 ContentProviderOperation을 사용하는데,
이런식으로 사용하는데, 두번째 인자가 무엇을 의미하는지 잘 모르겠습니다. API에도 아래와 같이 나와있기만 하구요.
여기에서 다른 데이터들을 입력할 때 RAW_CONTACT ID를 받아와야 하는데,
이것을 받아오기 위해 withValueBackReference()를 사용하더군요.
근데 withValueBackReference()를 보면
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
이런식으로 사용하는데, 두번째 인자가 무엇을 의미하는지 잘 모르겠습니다. API에도 아래와 같이 나와있기만 하구요.
public ContentProviderOperation.Builder withValueBackReference (String key, int previousResult)
Since: API Level 5
Add a ContentValues back reference. A column value from the back references
takes precedence over a value specified in withValues(ContentValues)
.
This can only be used with builders of type insert, update, or assert.
Returns
- this builder, to allow for chaining.
Contacts API 잘 아시는 분 도움 부탁드립니다 :)
바뀐 Contacts API는 정말 공부를 해도 어렵네요 ㅠㅠ
혹시나 검색해서 오시는 분들 참고하시라고 글 남겨요~
저도 검색하다보니 아래와 같은 글이 있더라구요.
http://blog.daum.net/bluebread/13
그래서 글 읽어보고 ContentProviderOperation.Builder 코드 보니.
previousResult에 들어가는 값은 Operation list에 있는 index 값 같더라구요.
즉 10개의 operation을 하게 되면 각각의 operation의 결과가 있을텐데(가령 insert라면 insert된 row의 id등)
그 결과값을 가지고 있다가 previousResult에 index를 넘겨주면 return 하는 식이죠.
그래서 이전에 contacts 테이블에 insert 된 contact_id 가 return 되어 들어가겠죠.
위 블로그 대로 하면 0이라는 숫자가 잘못되었다고 하는데, 직접 해 보지는 않았지만 맞는말 같더라구요
혹시 잘못된 부분 잇으면 댓글 달아주세요~