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
Bir SyncAdapter yaparken kullanabileceğiniz iki temel yöntem vardır:
- ContentProvider varolan bir veri doldurun.
- 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
- Veri depolayan bir ContentProvider,.
- Bu ContentProvider içine koymak için veri elde etmek için uzak bir sunucu ile iletişim kuran bir SyncAdapter,.
- 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.
Nasıl Android SQlite hazırlanmış deyim...
Nasıl metin yatay ve dikey olarak Andr...
Nasıl bir veritabanı ile bir Android u...
Nasıl Android Uygulama bellek kullanım...
Nasıl Android bir URL açmak'benim...