2011-02-16 17 views
13

Sadece registerContentObserver veya başka bir yöntem kullanırken hangi kişilerin değişeceğini belirlemek için kolay bir yol olup olmadığını belirlemeye çalışıyorum? Veritabanının ne zaman değiştiğini anlayabiliyorum, ancak bir güncelleme/değişiklik olduğunda her kaydı kontrol etmek istediğimden emin değilim.Hangi register w/registerContentObserver değişikliklerini belirler misiniz?

Temel olarak bir kişi listemiz varsa ve bir tanesi manuel yöntemle güncellenir (yani bir kişinin telefon numarasını değiştiririm veya yeni bir kişi eklerim) veya otomatik (ActiveSync fotoğraf eklenir, değiştirilir). A) Bir şeyin değiştiğini bilin ve B) Bazı verilerin nasıl değiştiğini bilin.

Fotoğrafları uzaktaki bir hizmetten eşleştirebildiğim belirli kullanıcıları aramaya çalışıyorum. Bir kullanıcı hesabına daha fazla bilgi eklenirse, bir eşleşme sağlayıp sağlamadığını incelemek istiyorum. Bunu planlamak istemiyorum, bir güncelleme yapıldıktan sonra bunu yapmak istiyorum.

Chris.

+0

Daha net olabilir misiniz? – Taranfx

+0

Güncellendi Soru – Chrispix

+0

Şu anda geçici bir çalışma olarak, fotoğraf kapmaktan kaçan fotoğrafları içermeyen tüm e-postaları ayrıştırıyorum ve ardından fotoğrafları karşıdan yüklüyorum. Umarım daha iyi bir çözüm olsa da. – Chrispix

cevap

7

Şu anda hangi Uri güncellemelerini kaydettiğinizden emin değilim, fakat ContentObserver numaralı telefonu kaydettirdiğinizde, ilgilendiğiniz kişiye doğrudan işaret eden tek bir URI kaydedemez misiniz? Daha sonra, gözlemciniz sadece ilginç kişiniz değiştirildiği zaman haberdar edilecektir.

http://developer.android.com/resources/articles/contacts.html

arama anahtarı her kayıt (satır) özgüdür, bu yüzden böyle bir şey yaptığını hayal ediyorum Sonra ne olduğunu: SDK Belgeler başlığında bölüm bu konuda daha fazla görüşmeleri "URI Lookup" ?

Uri lookupUri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_LOOKUP_URI, lookupKey); 
getContentResolver().registerContentObserver(lookupUri, false, myObserver); 

Ve bunu, listenizdeki her kişi için yapın. Eklenen Kişiler

Bunu yapmak görebilirsiniz iyi yolu için

'dahi geçerlidir, yeniden sorgu için bir imleç İletişim masaya ContentObserver değişiklikleri (re-sorgu hızlı her zaman olduğu Çoğu veriyle sık sık yapıyoruz ve en yüksek bilinen CONTACT_ID değerini koruyun. İmleç, kaydettiğinizin ötesinde bir kimlik içerdiğinde, eklenmiştir.

Ayrıca, this conversation'u henüz görmediyseniz, iyi okunabilir. Dianne, içerik değişimlerinin ayrıntılarını ContentObserver

Şerefe'lerden uzak tuttuğuna oldukça benziyor.

+2

Yani bu bir fikir için çok kötü değil, ancak yalnızca hangi kişilerin eklendiğini bildiğimde işe yarıyor, aynı zamanda 3000 içerik gözlemcisinin genel yükünden emin değilim.Benim durumumda, aktif aktif senkronizasyon yoluyla eklenen yeni kişileri güncellemeyi ve w/a fotoğrafını (bak ve indir) güncelleme yapmıyorlar. – Chrispix

+0

Eh, her kayıt çağrısında sadece bir 'ContentObserver 'oluşturmalısınız; Bu, bahsettiğiniz "kişilerin listesi" için her bir benzersiz Uri ile kaydedilecektir (TÜM kişilerin bir alt kümesi olduğu varsayılmıştır). Bu yöntem, aslında eklemek için işe yaramıyor. – Devunwired

+0

Bazı düşüncelerle daha fazla bilgi güncellendi ... – Devunwired

İlgili konular