2013-02-28 59 views
1

我的應用程序使用accountmanager同步數據。不使用身份驗證。有時(並非總是),當我第一次運行應用程序時,第一次同步所用的時間太長。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"); 
    } 
} 

過了一會同步開始正常工作。什麼可能是同步的僵局?

回答

0

Mayby問題是你requestSync

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

並在此之後添加定期同步

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

propaby它等待下一個同步

相關問題