Есть асинхронный метод
AsyncMethod(param1:String, param2:String, apiKey:String), в качестве одного из параметров которого - Api ключ. Данный ключ лежит в Singleton классе
ApiKeyStore, в качестве поля. Данный метод обращается к серверу и возращает Json твет. На каждый Api ключ есть лимит, и при достижении его AsyncMethod() выдает ошибку 403.
В таком случае в doOnError() - я обращаюсь к ApiKeyStore и меняю Api ключ на новый. Дальше по цепочке вызова срабатывает метод retry(), для того, чтобы повторить вызов AsyncMethod,
но данный метод вызывается с прежним Api ключем, хотя в ApiKeyStore ключ изменился.
//примерный код
AsyncMethod(param1,param2,ApiKeyStore.CurrentKey)
.doOnError{
ApiKeyStore.getNextApiKey()
}
.retry(ApiKeyStore.attemptsNumber)
Такое ощущение, что проблема связана с областью памяти, где хранятся параметры метода. Как можно решить данную проблему?