Действия по переключению биллинга в приложении

Ах, проблемы с оплатой в приложении никогда не заканчиваются! ^.^ У меня все работает правильно, чтобы показать страницу транзакции для покупки в приложении. Если я завершаю покупку, он возвращает меня в мое приложение и примерно через 10 секунд подтверждает покупку, и я получаю товар.

С другой стороны, если я нажму кнопку «Назад» после возвращения в приложение и переключусь на другое действие, оно никогда не обработает транзакцию. Даже если я вернусь к действиям по выставлению счетов в приложении, я никогда не получу свой купленный товар, как будто покупка была полностью забыта, если вы вызываете finish().

Что я могу сделать, чтобы он либо завершил транзакцию и выдал предмет, когда я вернусь к действию по выставлению счетов в приложении, либо обработал транзакцию и выдал купленный предмет в любом месте, где я нахожусь в своем приложении?


person Gatekeeper    schedule 18.06.2012    source источник


Ответы (1)


Получение уведомления обрабатывается широковещательным приемником, который не зависит от ваших действий. Как вы обрабатываете уведомление, зависит от вас. В реализации по умолчанию у вас есть интерфейс PurchaseObserver, реализованный Activity. Вы можете реализовать несколько действий и зарегистрировать их для соответствующего вызова. Или у вас может быть связанный код в базовой активности, чтобы все ваши действия были PurchaseObserver (может быть непрактичным, если у вас много действий).

person Nikolay Elenkov    schedule 18.06.2012
comment
То, что я работал, заключалось в том, чтобы поместить обработчик в мою домашнюю активность, которая всегда активна, пока мое приложение работает, так что независимо от того, какую активность я выполняю, к обработчику уведомлений всегда можно получить доступ. - person Gatekeeper; 18.06.2012
comment
Предпочтительной идиомой является регистрация в качестве наблюдателя onStart() и отмена регистрации onStop(), поэтому вам не следует полагаться на действие, которое невидимо для обработки этого. Вы можете вносить любые изменения в БД и т. д. из службы, но если вам нужно обновить пользовательский интерфейс (удалить рекламу и т. д.), каждое действие должно быть в состоянии справиться с этим, а не полагаться на домашнее действие. - person Nikolay Elenkov; 18.06.2012