AccountManager, учетная запись которого была удалена

Я знаю, что AccountManager addOnAccountsUpdatedListener() может быть используется для получения уведомлений об изменении списка учетных записей. Если произойдет такое событие, платформа вызовет предоставленный OnAccountsUpdateListener' s onAccountsUpdated() метод. Но аргумент метода содержит только список учетных записей. Как я могу узнать, какая учетная запись была удалена пользователем? Заранее спасибо!


person WonderCsabo    schedule 04.04.2014    source источник


Ответы (1)


В зависимости от того, что вы пытаетесь сделать, вам может сойти с рук это:

private Set<Account> mAccountCache; // init & populated when the listener is registered

@Override
public void onAccountsUpdated(Account[] accounts) {
    // This code assumes we're only interested in removed items.
    final Set<Account> currentAccounts = new HashSet<Account>(Arrays.asList(accounts));
    final Set<Account> removedAccounts = new HashSet<Account>(mAccountCache);
    removedAccounts.removeAll(currentAccounts); // populated with Accounts that were removed.
}
person Tadej    schedule 04.04.2014
comment
Я думал об этом решении, но я надеялся, что есть другой способ. Спасибо! - person WonderCsabo; 04.04.2014