用于onPerformSync的Android SyncAdapter逻辑

时间:2014-10-30 04:46:10

标签: android mysql sqlite android-syncadapter

我有一个本地SQLite数据库,以及我的表的一些ContentProviders。 我应该在onPerformSync中编码什么才能使本地表与远程表(位于MySQL数据库中的远程服务器上)同步? 我需要双向同步。该应用程序将由多个用户同时在多个设备上使用,并且所有设备必须与相同的远程数据库表同步,这样:发送远程本地的所有设备,并获取与此相关的部分特定设备/用户,从远程到本地。

我可以在服务器端使用PHP吗?因为我假设我不会直接从设备访问MySQL数据库......?所以我可能会通过webservice方式发送/接收一些JSON吗?

请给我一个示例,说明我应该在onPerformSync方法中执行的操作。 以下是我发现的教程中的示例:

@Override
  public void onPerformSync(Account account, Bundle extras, String authority,
      ContentProviderClient provider, SyncResult syncResult) {

      String authtoken = null;
      try {
          authtoken = mAccountManager.blockingGetAuthToken(account,
              AuthenticatorActivity.PARAM_AUTHTOKEN_TYPE, true);

          // Dummy sample. Do whatever you want in this method.
          // Now I assume here I should do/call my methods that DO SOMETHING...
          // What exactly does a method that does the syncing look like?

          List data = fetchData(authtoken);
          syncRemoteDeleted(data);
          syncFromServerToLocalStorage(data);
          syncDirtyToServer(authtoken, getDirtyList(mContentResolver));

      } catch (Exception e) {
          handleException(authtoken, e, syncResult);
      }
  }

那么我应该在“syncRemoteDeleted(data)”方法中做些什么呢? 请与我分享一些代码,因为我在这里很黑。

谢谢

0 个答案:

没有答案