SyncAdapter ohne Content
-
09-10-2019 - |
Frage
Ich möchte ein SyncAdapter einen Inhalt I mit einem Server synchronisieren möchten, implementieren. Es scheint, dass dies zu tun, können Sie einen Contentprovider benötigen für die Behörde registriert Sie in der SyncAdapter Eigenschaft XML-Datei angeben.
Als ich diesen Inhalt nicht auf den Rest des Telefons zugänglich sein will, ich habe meine eigenen Contentprovider nicht umgesetzt und verwendet, um eine persönliche Umsetzung diese Inhalte zu speichern.
Haben Sie wissen, ob es möglich ist, eine Synchronisation, um eine SyncAdapter ohne Verwendung einer Contentprovider zu bieten?
Vielen Dank.
Lösung
Sie müssen immer einen Content-Provider angeben, wenn ein SyncAdapter Umsetzung, aber das ist nicht zu sagen, es hat eigentlich nichts zu tun.
Ich habe SyncAdapters geschrieben, die Konten und die Integration mit dem „Konten & Synchronisierung“ Rahmen in Android erstellen, die nicht unbedingt speichern ihre Inhalte in einem Standard-Provider.
In Ihrem xml / syncadapter.xml:
<sync-adapter xmlns:android="http://schemas.android.com/apk/res/android"
android:accountType="com.company.app"
android:contentAuthority="com.company.content"
android:supportsUploading="false" />
In Ihrem Manifest:
<provider android:name="DummyProvider"
android:authorities="com.company.content"
android:syncable="true"
android:label="DummyProvider" />
Und dann einen Dummy-Anbieter hinzufügen, die nichts tun, außer nützlich exist, DummyProvider.java:
public class DummyProvider extends ContentProvider {
@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {
return 0;
}
@Override
public String getType(Uri uri) {
return null;
}
@Override
public Uri insert(Uri uri, ContentValues values) {
return null;
}
@Override
public boolean onCreate() {
return false;
}
@Override
public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
return null;
}
@Override
public int update(Uri uri, ContentValues values, String selection,
String[] selectionArgs) {
return 0;
}
}
Andere Tipps
Nun, auch die offizielle Dokumentation von Google vor, dass Sie einen Stub (Dummy) ContentProvider
verwenden.
https://developer.android.com/training/sync-adapters/ index.html