Асинхронные обратные вызовы в диаграммах активности UML

Я пытаюсь смоделировать свое приложение с помощью диаграмм активности UML. Я использую JavaScript и Node.js и множество асинхронных обратных вызовов. Вот что у меня получилось:

Activity Diagram

Что вы думаете? Вы понимаете, что происходит? Я использую «общий коннектор», чтобы связать обратный вызов с действием («запустить 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- Войдите дважды при использовании SyncAdapters Я создаю новое приложение для Android, используя SyncAdapter для обработки синхронизации БД. У меня все на месте, и приложение работает нормально, но я заметил, что дважды вошел в систему. Первый вход в систему происходит, когда...

Я создаю новое приложение для 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.

Это не то, что меня сильно беспокоит, но я хотел бы знать, есть ли способ избежать повторного входа в систему.

16
задан Kyle Clegg 2 August 2012 в 16:06
поделиться