AccountManager getUserData devuelve un valor nulo a pesar de estar configurado

Estoy trabajando en una aplicación de Android que utiliza elGerente de cuentas para almacenar cuentas y credenciales. Un problema que he tenido es que, aunque pase un montón de valores de String al AccountManager'saddAccountExplicitly paquete de datos.

He comprobado para asegurarse de que el paquete esno vacío y que seacontiene Los valores antes de agregar la cuenta. Y la mayoría de las veces este es el caso, pero de vez en cuando me sale nulo al consultar estos valores.

Los valores de retorno nulos son más comunes después de que acabo de eliminar la cuenta y volver a agregarla.

Estoy haciendo mi consulta dentro delonAccountsUpdated método de unOnAccountsUpdateListener Implementación, por lo que la cuenta debe agregarse y estar lista, ¿no?

Gracias por cualquier ayuda

AutenticadorActividad

// in the AuthenticatorActivity
Bundle userData = new Bundle();
userData.put (k1, v1);
userData.put (k2, v2);
userData.put (k3, v3);
userData.put (k4, v4);
userData.put (k1, v1);

Account a = new Account ("acc name", "com.account.type");
AccountManager am = AccountManager.get(this);

OnAccountsUpdateListener listener = new OnAccountsUpdateListener() {

        @Override
        public void onAccountsUpdated(Account[] accounts) {
            Account mine = findAccount(accounts, account); // match account name
            notifySignedIn(mine); // tell the world you're signed in
            am.removeOnAccountsUpdatedListener(this);
        }
    };

am.addOnAccountsUpdatedListener(listener, handler, false);
am.addAccountExplicitly(a, "themostsecurepwintheworld", userData);

Algun otro hilo

AccountManager am = AccountManager.get(mContext);
final string value2 = am.getUserData(mAccount, k2);

if (TextUtils.isEmpty(value2)) {
    Log.d("WTF", "value is empty");
}

Respuestas a la pregunta(3)

Su respuesta a la pregunta