1

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

在这里我如何添加帐户

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");
    }
}

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

4

1 回答 1

0

也许问题是你请求同步

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

然后你添加定期同步

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

证明它正在等待下一次同步

于 2013-04-30T09:53:09.340 回答