SORU
22 EKİM 2010, Cuma


Nasıl Android SyncAdapter kullanırım?

Android senkronizasyon mantığını anlamaya çalışıyorum. Benim anlamadığım syncadapter.xml Android SDK örnek proje SampleSyncAdapter bulunan dosyadır. Eğer SDK örnek bir karşıdan, aşağıdaki klasörde olmalıdır:

SDK/android-sdk-PLATFORM/samples/android-VERSION/SampleSyncAdapter/res/xml/syncadapter.xml

İçerik sağlayıcı yetkisi bir dize ya da bir kaynak için bir referans olması gerektiğini okudum. Tam olarak içerik yetki nedir ve nerede com.android.contacts? Burada dosyanın içeriği (G/Ç lisans bilgi ve yorumlar, API level 16).

<sync-adapter xmlns:android="http://schemas.android.com/apk/res/android"
    android:contentAuthority="com.android.contacts"
    android:accountType="com.example.android.samplesync"
    android:supportsUploading="false"
    android:userVisible="true"
/>

CEVAP
2 Mart 2011, ÇARŞAMBA


Bir SyncAdapter yaparken kullanabileceğiniz iki temel yöntem vardır:

  1. ContentProvider varolan bir veri doldurun.
  2. Kendi ContentProvider veri yeni bir tür depolamak için oluşturun.

Eski Bu örnekte uygulaması yapacağız. Rehber listesi olan bir web sitesi var, ve cihaz üzerinde başka kişiler ile birlikte bu Mağaza için istiyorlar. Her iki durumda da, bu işleri onca yolu üç bileşen arasında bir ilişki yoluyla

  1. Veri depolayan bir ContentProvider,.
  2. Bu ContentProvider içine koymak için veri elde etmek için uzak bir sunucu ile iletişim kuran bir SyncAdapter,.
  3. SyncAdapters ve ContentProviders çifti nasıl dolduracağını Android ContentResolver,.

Android bir cihaz çok farklı ContentProviders ve birçok farklı SyncAdapters olabilir. Bir ContentResolver aynı bir parçası olmayabilir.muayenebir SyncAdapter, ContentResolver doğru veri belirli bir tür saklamak için ContentProvider bulan bir sistem hizmetidir. Bu benzersiz bir özel ContentProvider tanımlayan ContentAuthority dize kullanarak yapar. Ayrıca, her ContentProvider bu ContentResolver tarafından bulunabilir olmasını sağlar AndroidManifest.xml bildirilmelidir. Bu bildirinin içinde ContentProvider diğer uygulamalar tarafından kullanılabilir olup olmadığını belirleyebilirsiniz: android:exported.

<provider
    android:name=".CustomProvider"
    android:authorities="com.example.app.provider"
    android:exported="false"
    android:multiprocess="true" >
</provider>

Bu durumda, varolan bir ContentProvider kullanarak, platform belgelerine kullanıyorlar ne olduğunu görmek için bakmak, ve aynı dize kullanmak gerekir. Eğer kendi ContentProvider oluşturuyorsanız, sadece ContentAuthority benzersiz oluşturmak için emin olmak gerekir. Bunu yapmanın en iyi yolu, yetkili etki alanı adı (sınıf stili java) parçaları kullanmaktır. Ters sırayla bunları yazmak. Bu... com.android.contacts örnek gösterilmiştir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Darren Kitchen

    Darren Kitch

    3 EKİM 2011
  • ETrade Supply

    ETrade Suppl

    23 Temmuz 2011
  • Photoshop Pro Help

    Photoshop Pr

    1 Ocak 2007