2013-02-05 10 views
8

Tôi thực sự không hiểu tại sao người quan sát nội dung lại nghe những thay đổi không liên quan đến thông tin liên hệ.ContentObserver để thay đổi liên hệ nghe

Tôi chỉ đơn giản là đăng ký với URI mà tôi muốn lắng nghe những thay đổi:

getContentResolver().registerContentObserver(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, true, contactsObserver); 

Nhưng sau khi gọi ai đó hoặc nhắn tin với ai đó, nó gây nên và gọi phương thức onChange trong ContentObserver. Vì vậy, tôi cần phải đồng bộ lại tất cả các danh sách liên lạc với ứng dụng của tôi mặc dù tôi không cần phải làm.

Chỉ lĩnh vực mà tôi quan tâm:

  • ContactsContract.CommonDataKinds.Phone.CONTACT_ID
  • ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME
  • ContactsContract.CommonDataKinds.Phone.NUMBER

Tôi nên triển khai loại thay đổi nào để lắng nghe những thay đổi cho các mục DB này?

+0

có bất kỳ giải pháp cho nó, nếu có xin vui lòng hướng dẫn tôi .. tôi đang có cùng một vấn đề kể từ cuối 1 tuần – user3475052

+0

@ user3475052 một câu trả lời gần đây có thể bạn quan tâm. – Boris

+0

Vẫn đang phải đối mặt với vấn đề này. – GensaGames

Trả lời

0

Cơ sở dữ liệu Danh bạ có trường ContactsContract.Contacts.TIMES_CONTACTED Trường này được cập nhật mỗi khi bạn liên hệ với ai đó trong danh sách liên hệ của mình.

Thậm chí có thể cập nhật trường này bằng ứng dụng của riêng bạn, có nghĩa là nếu bạn liên hệ với bất kỳ liên hệ nào bằng ứng dụng cập nhật trường này, phương thức onChange() của bạn sẽ được gọi.

+0

Có nhiều trường như thế này, ví dụ 'ContactsContract.ContactOptionsColumns.LAST_TIME_CONTACTED'. –

+0

đây là một câu hỏi rất cũ, không chắc chắn nếu OP vẫn còn chờ đợi, nhưng có lẽ @ user3475052 sẽ được quan tâm? – Boris