Я создаю новое приложение для Android с помощью SyncAdapter
для обработки синхронизации db.
У меня все на месте, и приложение работает нормально, но я заметил, что я дважды зашел в систему.
Первый вход в систему происходит, когда класс AuthenticatorActivity
(он расширяет AccountAuthenticatorActivity
) проверяет пользователя и пароль.
Если пользователь и пароль верны, AuthenticatorActivity
выполняет следующее:
- Если
account
не существует, он создает его с помощьюmAccountManager.addAccountExplicitly()
-
authToken
сохраняется с помощьюintent.putExtra(AccountManager.KEY_AUTHTOKEN, authToken);
Это было в основном скопировано/вставлено из образцов Android, поэтому я думаю, что все в порядке.
Проблема заключается в том, что когда SyncAdapter
запускает и использует
authtoken = mAccountManager.blockingGetAuthToken(account,
AuthenticatorActivity.PARAM_AUTHTOKEN_TYPE, true);
Вызывается метод getAuthToken()
внутри класса Authenticator
, который расширяет AbstractAccountAuthenticator
. И внутри этого метода я снова попадаю в конечную точку входа.
С этого момента конечная точка входа не попадает снова, пока истечет authToken
.
Это не то, что меня очень беспокоит, но я хотел бы знать, есть ли способ избежать повторного входа в систему дважды.