Tôi đang làm việc trên một ứng dụng Android sử dụng AccountManager để lưu trữ thông tin đăng nhập &. Một vấn đề tôi gặp phải là mặc dù tôi chuyển một loạt các giá trị String vào gói dữ liệu addAccountExplicitly của AccountManager.AccountManager getUserData trả về null mặc dù nó được đặt
Tôi đã kiểm tra để đảm bảo rằng gói là không rỗng và rằng nó chứa giá trị trước khi thêm tài khoản. Và hầu hết thời gian này là trường hợp, nhưng mỗi một lần trong một thời gian tôi nhận được null khi tôi truy vấn các giá trị này.
Giá trị trả lại null thường phổ biến hơn sau khi tôi vừa xóa tài khoản và thêm lại.
tôi đang làm truy vấn của tôi bên trong onAccountsUpdated phương pháp của một thực hiện OnAccountsUpdateListener, vì vậy tài khoản nên được bổ sung và tốt để đi, phải không?
Nhờ sự giúp đỡ
AuthenticatorActivity
// 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);
Một số chủ đề khác
AccountManager am = AccountManager.get(mContext);
final string value2 = am.getUserData(mAccount, k2);
if (TextUtils.isEmpty(value2)) {
Log.d("WTF", "value is empty");
}
Một số mã xin vui lòng. – kichik
Có quá nhiều mã để sao chép + pase, nhưng tôi sẽ chỉnh sửa câu hỏi bằng một số mã cơ bản. Có rất nhiều đồng thời và luồng, nhưng tất cả mọi thứ được bắt đầu thông qua _onAccountsUpdatedListener_. – copolii