AccountManager:有时需要一段时间的同步

时间:2013-02-28 09:04:45

标签: android synchronization accountmanager

我的应用程序使用accountmanager同步数据。不使用身份验证。有时(并非总是)当我第一次运行app时,第一次同步需要很长时间。

我在这里添加帐户

private void ensureSyncAccount() {
    final AccountManager accountManager = AccountManager.get(this);
    String authority = getString(R.string.acc_authority);
    String accountType = getString(R.string.acc_name);
    String accountName = getString(R.string.app_name);

    Account[] existingAccs = accountManager.getAccountsByType(accountType);
    if (existingAccs.length > 0) {
        return;
    }

    Account account = new Account(accountName, accountType);
    if (accountManager.addAccountExplicitly(account, null, null)) {
        ContentResolver.setIsSyncable(account, authority, 1);
        ContentResolver.setSyncAutomatically(account, authority, true);
        ContentResolver.requestSync(account, authority, new Bundle());
        ContentResolver.addPeriodicSync(account, authority, new Bundle(), 60*10);
    }
    else {
        Log.e(LOG_TAG, "Unable to add account");
    }
}

一段时间后,同步开始正常工作。同步死锁的原因是什么?

1 个答案:

答案 0 :(得分:0)

Mayby问题是你requestSync

ContentResolver.requestSync(account, authority, new Bundle());

然后添加定期同步

ContentResolver.addPeriodicSync(account, authority, new Bundle(), 60*10);

propaby它正在等待下次同步