Tüm sorularınızı daha büyük soruyu yanıtlayarak cevaplamaya çalışacağım: Bir web sunucusu ile android uygulaması arasında verileri nasıl senkronize edebilirim?
Web sunucunuz ve bir android uygulaması arasında veri senkronizasyonu, android cihazınızda birkaç farklı bileşen gerektirir.
Kalıcı Depolama:
Telefonunuz aslında web sunucusundan aldığı verileri bu şekilde depolar. Bunu gerçekleştirmenin olası bir yolu, bir Sqlite veritabanı tarafından desteklenen kendi özel ContentProvider'ınızı yazmaktır. Bir içerik sağlayıcı için iyi bir öğretici burada bulunabilir: http://thinkandroid.wordpress.com/2010/01/13/writing-your-own-contentprovider/
Bir ContentProvider sizin depolanan veri ile etkileşim tutarlı bir arayüz tanımlar. İsterseniz, diğer uygulamaların verilerinizle etkileşime girmesine de izin verebilir. ContentProvider'ınızın arkasında bir Sqlite veritabanı, Önbellek veya isteğe bağlı bir depolama mekanizması olabilir.
Kesinlikle bir Sqlite veritabanı ile bir ContentProvider kullanmanızı öneririm, istediğiniz herhangi bir java tabanlı depolama mekanizması kullanabilirsiniz.
Veri Değişim Biçimi:
Bu, web sunucunuz ile android uygulamanız arasında veri göndermek için kullandığınız biçimdir. Bu günlerde en popüler iki biçim XML ve JSON'dur. Biçiminizi seçerken, ne tür bir serileştirme kitaplığı bulunduğunu düşünmelisiniz. XML için benzer kütüphanelerin bulunduğundan emin olsam da, json serileştirmesi için gson adında harika bir kütüphane olduğunu biliyorum: https://github.com/google/gson .
Senkronizasyon Hizmeti
Sunucunuzdan yeni veri alabilecek ve mobil içeriği sunucunun içeriğini yansıtacak şekilde yenileyebilecek bir tür eşzamansız görev isteyeceksiniz. İçerikte yerel değişiklikler yaptığınızda ve bu değişiklikleri yansıtmak istediğinizde de sunucuyu bilgilendirmek istersiniz. Android, bu kalıbı kolayca çözmenin bir yolu olarak SyncAdapter kalıbını sağlar . Kullanıcı hesaplarını kaydetmeniz gerekir ve ardından Android sizin için çok fazla sihir gerçekleştirir ve otomatik olarak senkronize etmenize izin verir. İşte iyi bir öğretici: http://www.c99.org/2010/01/23/writing-an-android-sync-provider-part-1/
Kayıtların aynı olup olmadığını nasıl belirlediğinize gelince, genellikle hem android cihazda hem de sunucuda sakladığınız benzersiz bir kimliğe sahip öğeler oluşturacaksınız. Aynı referansa başvurduğunuzdan emin olmak için bunu kullanabilirsiniz. Ayrıca, her zaman en yeni verileri aldığınızdan veya yanlışlıkla yeni yazılan verilerin üzerine yazmadığınızdan emin olmak için "updated_at" gibi sütun özelliklerini saklayabilirsiniz.