2012-06-13 2 views
2

Я иду через этот учебник у них есть: developer.android.com/guide/market/billing/billing_integrate.htmlAndroid в приложение биллинга - где разместить код привязки

и я в этом разделе «Binding к MarketBillingService»

Они дают эти фрагменты кода там:

try { 
    boolean bindResult = mContext.bindService(
    new Intent("com.android.vending.billing.MarketBillingService.BIND"), this, 
    Context.BIND_AUTO_CREATE); 
    if (bindResult) { 
    Log.i(TAG, "Service bind successful."); 
    } else { 
    Log.e(TAG, "Could not bind to the MarketBillingService."); 
    } 
} catch (SecurityException e) { 
    Log.e(TAG, "Security exception: " + e); 
} 

, но я понятия не имею, куда поместить их. Заходит ли он на экран «Активность», когда пользователь нажимает кнопку «купить»? Если да, то какой объект mContext они используют? Как я могу это сделать? Это похоже на прослушиватель кнопок? Этот код предназначен для прослушивания кнопок?

Спасибо!

ответ

2

Вы поместите код bindService в том месте, где вы хотите, чтобы ваше приложение запустило Сервис или связалось с сервисом. Как правило, это будет в onCreate или onStart каждого действия, которое взаимодействует с сервисом. В этом случае вы помещаете код в onCreate или onStart из активности с кнопкой «купить». Я думаю, вы могли бы даже поставить его в задачу async, которая запускается кнопкой.

+1

спасибо, что я смущен, это то, что есть переменная mContext. Откуда это? – Genadinik

+0

mContext - это контекст. Если вы привязываетесь к службе в своей деятельности, вы можете использовать «это» для контекста или «getBaseContext()» или любой контекст, который вы хотите использовать. Пожалуйста, прочитайте справочную документацию по Android для мероприятий и контекстов. – Christine

+1

Хорошо, что дало мне синтаксическую ошибку, подобную этой: метод bindService (Intent, ServiceConnection, int) в типе Контекст не применим для аргументов (Intent, ExtraHelpActivity, int) – Genadinik