像Gmail一样同步



我有一个应用程序,在该应用程序中,用户可以在该应用程序中编辑/添加记录,并且在建立Internet连接后应立即将其发送到服务器。这似乎是Gmail应用程序的确切行为:

您可以离线编写电子邮件,单击"发送",关闭应用程序/过程,当Internet连接返回时,执行了将电子邮件发送到服务器的同步。

问题在于我已经有一个syncaccount,syncadapter运行每日同步。如果我要使用 contentResolver.addperiodicsync 添加第二个同步,那么我将不得不创建另一个权威,因此必须使用不同的数据库表?

我可以独立安排两个同步操作,访问相同的数据库吗?

解决了问题。显然,您可以立即请求一次性同步,而不是安排一个。您还可以为此一次同步提供附加列表。

因此,我的解决方案是在该捆绑包中放置一个参数,然后在适配器的上相应地做我的魔术。

    final String ACCOUNT_NAME = "dummyAcc";
    final String ACCOUNT_TYPE = "dummyAccType";
    final String PROVIDER = "dummyProvider";
    Account appAccount = new Account(ACCOUNT_NAME, ACCOUNT_TYPE);
    AccountManager accountManager = AccountManager.get(this);
    Bundle extras = new Bundle();
    extras.putBoolean("magicParam", true);
    extras.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true);
    ContentResolver.requestSync(appAccount, PROVIDER, extras);
...
@Override
public void onPerformSync(Account account, Bundle extras, String authority,
        ContentProviderClient provider, SyncResult syncResult) {
    if (extras.getBoolean("magicParam")) {
       // do magic;
    }
}

相关内容

最新更新