如何让AccountManager创建的账户自动触发SyncAdapter同步?
如何实现AccountManager账户的自动同步及应用内触发同步?
我已经在手机的账户管理界面,通过AccountManager创建了和我的应用关联的账户,了解到需要借助SyncAdapter来实现用该账户启动会话的功能。目前我已经在Manifest中配置了Provider和Service,也编写了SyncAdapterService类及SyncAdapter实现类,具体代码如下:
Manifest配置代码
<provider android:name="com.example.pargibay.androidphprpcxml.StubProvider" android:authorities="com.example.pargibay.androidphprpcxml.provider" android:exported="false" /> <service android:name=".SyncAdapterService" android:exported="true"> <intent-filter> <action android:name="android.content.SyncAdapter" /> </intent-filter> <meta-data android:name="android.content.SyncAdapter" android:resource="@xml/sync_adapter" /> </service>
SyncAdapterService类代码
public class SyncAdapterService extends Service { private static SyncAdapter sSyncAdapter = null; private static final Object sSyncAdapterLock = new Object(); @Override public void onCreate() { Log.d("SyncStarted","SyncService started"); synchronized (sSyncAdapterLock) { if (sSyncAdapter == null) { try { sSyncAdapter = new SyncAdapter(getApplicationContext(), true); } catch (MalformedURLException e) { e.printStackTrace(); } Log.d("SyncStoped","SyncService stoped"); } } } @Nullable @Override public IBinder onBind(Intent intent) { return sSyncAdapter.getSyncAdapterBinder(); } }
SyncAdapter实现类代码
public class SyncAdapter extends AbstractThreadedSyncAdapter { public SyncAdapter(Context context, boolean autoInitialize) throws MalformedURLException { super(context, autoInitialize); } @Override public void onPerformSync(Account account, Bundle extras, String authority, ContentProviderClient provider, SyncResult syncResult) { // 这里还未实现同步逻辑 } }
我已经参考相关教程完成了AccountManager创建账户的部分,现在想了解如何让这个已添加的账户实现自动同步。另外,我希望能实现这样的效果:可以在应用内查看已添加的账户,并且能够手动触发同步操作。
内容的提问来源于stack exchange,提问作者Pedro
相关产品推荐
相关产品推荐

