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