Почему Android 'TrivialDrive v3 Billing Sample' не позволяет использовать несколько асинхронных вызовов?

Я использую служебные методы из Android "TrivialDrive v3 Billing Sample", и, как и многие другие, я получаю сообщение об ошибке:

java.lang.IllegalStateException: Невозможно запустить асинхронную операцию (launchPurchaseFlow), потому что выполняется другая асинхронная операция (launchPurchaseFlow).

Это было решено в нескольких потоках (например, здесь или здесь), и во всех местах предлагается попробовать / перехватить или изменить состояние "асинхронная операция выполняется", чтобы избежать этого сбоя.

Эти подходы не имеют смысла для меня, так как первый требует, чтобы я внедрил механизмы повторения / ошибки во всем приложении, а последний вмешивается в поток этой библиотеки (вы также можете удалить этот код "выбрасывает незаконное состояние"),

Мой вопрос: в чем причина ограничения "1 асинхронная операция за раз" в IabHelper?

Если есть реальная причина, то, возможно, каждый метод должен выдавать ошибку, которая заставит разработчика ее устранить. Если нет, я думаю, что удаление кода "выбрасывание незаконного состояния..." должно быть удалено.

0 ответов

Другие вопросы по тегам