Я пытаюсь смоделировать свое приложение с помощью диаграмм активности UML. Я использую JavaScript и Node.js и множество асинхронных обратных вызовов. Вот что у меня получилось:
Что вы думаете? Вы понимаете, что происходит? Я использую «общий коннектор», чтобы связать обратный вызов с действием («запустить MyClass.myMethod )и узел форка -, чтобы показать «параллельное» выполнение. Я не нашел письменного слова о обратные вызовы в диаграммах активности в любом месте в Интернете или в моих книгах.
РЕДАКТИРОВАТЬ Это будет код JavaScript для диаграммы :
var MyClass = function () {
//constructor
};
MyClass.prototype = {
myMethod : function(cb) {
//this is an async method
var result = 5 + 5;
setTimeout(function () {
cb(null, result);
},100); //execute Callback after 100ms
}
};
//instanciate a MyClass Object
var myClassInstance = new MyClass();
//create a callback function that prints the result
var callbackFunction = function (err,result) {
console.log(result);
};
myClassInstance.myMethod(callbackFunction);
console.log('I am first');
-. 121 ---1261665-
Я создаю новое приложение для Android, используя SyncAdapter
для обработки синхронизации базы данных. У меня все на месте, и приложение работает нормально, но я заметил, что дважды вошел в систему.
Первый вход в систему происходит, когда 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
.
Это не то, что меня сильно беспокоит, но я хотел бы знать, есть ли способ избежать повторного входа в систему.