Android 多个同步适配器项目,例如 Google 帐户?
Android multiple sync adapter items like Google Account?
我目前将我的 Android 应用程序设置为使用 Android 的 AccountManager 功能,使用 SyncAdapter 和经过身份验证的帐户自动执行同步。
我只有 1 个同步适配器 运行 可以同步所有内容,但我想将其分开以在不同的时间间隔对不同的内容执行同步。
我怎样才能像 Google 那样拥有多个同步项目?
您只需定义多个同步适配器,使用相同的帐户类型。
清单包含:
<service android:exported="true" android:name="com.example.FooSyncAdapterService">
<intent-filter>
<action android:name="android.content.SyncAdapter" />
</intent-filter>
<meta-data android:name="android.content.SyncAdapter" android:resource="@xml/syncadapter_foo" />
</service>
<service android:exported="true" android:name="com.example.BarSyncAdapterService">
<intent-filter>
<action android:name="android.content.SyncAdapter" />
</intent-filter>
<meta-data android:name="android.content.SyncAdapter" android:resource="@xml/syncadapter_bar" />
</service>
而syncdataper_foo
是
<sync-adapter xmlns:android="http://schemas.android.com/apk/res/android"
android:contentAuthority="foo"
android:accountType="com.example"
android:allowParallelSyncs="true" />
而syncdataper_bar
是
<sync-adapter xmlns:android="http://schemas.android.com/apk/res/android"
android:contentAuthority="bar"
android:accountType="com.example"
android:allowParallelSyncs="true" />
请注意,在帐户类型 "com.google" 的情况下,同步适配器甚至由不同的应用程序(Drive、Docs、Sheets、Gmail、Calendar 等)提供。
我只想将主要属性添加到上述答案中,使同步类型在帐户菜单下可见。
"android:userVisible="真
<sync-adapter xmlns:android="http://schemas.android.com/apk/res/android"
android:contentAuthority="foo"
android:accountType="com.example"
android:allowParallelSyncs="true"
android:userVisible="true"/> // this line does the job of showing up.
我目前将我的 Android 应用程序设置为使用 Android 的 AccountManager 功能,使用 SyncAdapter 和经过身份验证的帐户自动执行同步。
我只有 1 个同步适配器 运行 可以同步所有内容,但我想将其分开以在不同的时间间隔对不同的内容执行同步。
我怎样才能像 Google 那样拥有多个同步项目?
您只需定义多个同步适配器,使用相同的帐户类型。
清单包含:
<service android:exported="true" android:name="com.example.FooSyncAdapterService">
<intent-filter>
<action android:name="android.content.SyncAdapter" />
</intent-filter>
<meta-data android:name="android.content.SyncAdapter" android:resource="@xml/syncadapter_foo" />
</service>
<service android:exported="true" android:name="com.example.BarSyncAdapterService">
<intent-filter>
<action android:name="android.content.SyncAdapter" />
</intent-filter>
<meta-data android:name="android.content.SyncAdapter" android:resource="@xml/syncadapter_bar" />
</service>
而syncdataper_foo
是
<sync-adapter xmlns:android="http://schemas.android.com/apk/res/android"
android:contentAuthority="foo"
android:accountType="com.example"
android:allowParallelSyncs="true" />
而syncdataper_bar
是
<sync-adapter xmlns:android="http://schemas.android.com/apk/res/android"
android:contentAuthority="bar"
android:accountType="com.example"
android:allowParallelSyncs="true" />
请注意,在帐户类型 "com.google" 的情况下,同步适配器甚至由不同的应用程序(Drive、Docs、Sheets、Gmail、Calendar 等)提供。
我只想将主要属性添加到上述答案中,使同步类型在帐户菜单下可见。
"android:userVisible="真
<sync-adapter xmlns:android="http://schemas.android.com/apk/res/android"
android:contentAuthority="foo"
android:accountType="com.example"
android:allowParallelSyncs="true"
android:userVisible="true"/> // this line does the job of showing up.